{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 《python数据可视化之matplotlib实践》\n",
    "\n",
    "## 绘制统计图形\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import matplotlib as mpl\n",
    "import numpy as np\n",
    "%matplotlib inline\n",
    "\n",
    "mpl.rcParams['font.sans-serif'] = ['FangSong']  # 显示中文\n",
    "mpl.rcParams['axes.unicode_minus'] = False # 不使用unicode_minus模式处理坐标轴轴线为负数的情况，\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 绘制柱状堆积图\n",
    "\n",
    "设置bar函数的bottom取值来实现"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = [1,2,3,4,5]\n",
    "y1 = [2,4,1,6,3]\n",
    "y2 = [6,2,3,5,1]\n",
    "\n",
    "plt.bar(x,y1,bottom=0,label='class A')\n",
    "plt.bar(x,y2,bottom=y1, label='class B')\n",
    "plt.grid()\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = [1,2,3,4,5]\n",
    "y1 = [2,4,1,6,3]\n",
    "y2 = [6,2,3,5,1]\n",
    "\n",
    "plt.bar(x,y1,bottom=0,label='class A')\n",
    "plt.bar(x,y2,bottom=y1, label='class B')\n",
    "plt.grid(axis='y', ls=':', color='r', alpha=0.3)\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = [1,2,3,4,5]\n",
    "y1 = [2,4,1,6,3]\n",
    "y2 = [6,2,3,5,1]\n",
    "\n",
    "plt.bar(x,y1,bottom=0,label='class A')\n",
    "plt.bar(x,y2,bottom=y1, label='class B')\n",
    "plt.grid(True, axis='x', ls=':', color='r', alpha=0.3)\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 绘制多数据分块图\n",
    "\n",
    "柱状多数据并列图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 多数据并列\n",
    "x = np.arange(1,6) ##### 注意，这里不是[1,2,3,4,5]，因为后面要为每个x做平移,而普通list不支持broadcast\n",
    "y1 = [2,4,1,6,3]\n",
    "y2 = [6,2,3,5,1]\n",
    "\n",
    "bar_width = 0.35\n",
    "tick_label = list('ABCDE')\n",
    "\n",
    "bar_width = 0.35\n",
    "tick_label = list('ABCDE')\n",
    "\n",
    "plt.bar(x, y1, width=bar_width, align='center',label='class A', alpha=0.5)\n",
    "plt.bar(x + bar_width, y2, width=bar_width, align='center',label='class B', alpha=0.5)\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "numpy.ndarray"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "type(np.arange(1,6))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "range"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "type(range(1,6))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "ename": "TypeError",
     "evalue": "unsupported operand type(s) for +: 'range' and 'float'",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mTypeError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-16-f2fac4c78e25>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[0mrange\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m6\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m+\u001b[0m\u001b[1;36m0.35\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[1;31mTypeError\u001b[0m: unsupported operand type(s) for +: 'range' and 'float'"
     ]
    }
   ],
   "source": [
    "range(1,6)+0.35  # 报错"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1.35, 2.35, 3.35, 4.35, 5.35])"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.arange(1,6) + 0.35"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.bar(x, y1, width=bar_width, align='center',label='class A', alpha=0.5)\n",
    "plt.bar(x + bar_width, y2, \n",
    "        bottom=y1,  # ####### 修改此处\n",
    "        width=bar_width, align='center',label='class B', alpha=0.5)\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWwAAAD8CAYAAABTjp5OAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAGYdJREFUeJzt3V2MXdV1B/D/KhiP44+W2hdw5E7G5qMQ5SEkI7CKScYPsdwIJ3zIAqHactxm+oIFVMoDqQCnqKUP4LRxUFQX2a0iJUQuIsQUWSjIBDBYDh6gHZk6hqSEcS3sGSAghB1brD7MHTy+c889Z+aefdbaZ/9/kiUPM76zz97r/tn33DV7RFVBRET+/YH1AIiIqBgGNhFRJBjYRESRYGATEUWCgU1EFAkGNhFRJBjYRESRYGATEUWCgU1EFIlzy3ywRYsWaV9fX5kPSURUewcOHBhV1Ube15Ua2H19fXjppZfKfEgiotoTkTeLfB1viRARRYKBTUQUCQY2EVEkSr2HTUQ04dSpUxgZGcGJEyesh+JGT08PlixZglmzZs3o3zOwiSiIkZERzJ8/H319fRAR6+GYU1WMjY1hZGQES5cundFjFLolIiK3iMjNIvLQjL4LESXnxIkTWLhwIcO6SUSwcOHCrl5x5O6wRWQJgD9U1X8RkR4REeWvqSGiAhjWZ+t2PorssG8AMAQAqvrvDGsiIhtF7mH3AThPRK4F8BkAdzC0iWi61mx9PvNzo4dfxtD2u/GFjfdh0aVXFnq8XZtWTOv7nzp1Cnv27MHu3buxZcuWaf3bIo4dO4brr78e99xzDw4dOoRly5ZhzZo1pX6PIoE9H8D/qOp/ishfAlgB4LmJT4rIIIBBAOjt7S11cGXpVChFdCqm6RYNUa4995/14TOv/Bprv/Mj7Lz3Vgx8ftmULy/6+ePvfRhsyN2YSVjPxKxZs7Bq1Sq88MILQR7/ggsuwGWXXYbVq1dj9erV2LhxY+mBXeSWyCiAt5p//y2AT0/+pKpuU9V+Ve1vNHJ/FD46VRUTUTtlhfXOe2+tYrjTVtfn17vvvovFixeX/rhFdtjPAugH8F8ALgLw36WPwqm6FhPFocywbvd5ayGfX6qK73//+7j88svxy1/+Et/+9rfbft3Q0BAOHjyIRqOBY8eOYd26dThy5AiefPJJzJ49Gy+++CJ+8IMf4JVXXsHBgwfxzjvvYHR0FJs3b277eCdOnMCePXvw2GOP4Vvf+lap1wQU22E/BeBPROQmALNU9ZXSR+EQw5osMay788QTT2DZsmX4yle+0nGne/LkSXzta1/DF7/4Rbz66qsAxkN80aJFWL9+PW677TYAwHPPPYcrrrgCt912G9auXZv5eD09PVi5ciUefPBB3HXXXeVeFAoEtqp+rKrfUdVHVXV76SNwiGFNlhjW3Tt48CAuvfRSAMA3vvGNzK+bP38+Hn74YbzxxhuYPXs2AOC6667Dm2++iXXr1n3SMz04OIjHH38cGzduxJw5c3K//6xZs3D69GmMjo6WcDVn8CyRFgxrssaw7t7SpUvx5pvjJ5aOjY3hyJEjbb9uy5YtuPPOO3H11Vd/ErJDQ0O44447sGPHDuzYsQMAMDw8jM2bN2Pr1q146KFiPz/4wQcfYP78+eVcUBN/NH0ShjV5UNewHu+oWgF8b1Pw73XjjTfivvvuw9GjRwHgk93ys88+i1dffRV79+7FNddcg+XLl2PHjh04//zzMTo6ihdffBEHDhzA7t270d/fjxUrxrvAfvKTn2Dfvn24+OKLMTAw0PZ7joyM4NChQ3jqqadw9OhR3HjjjZ/s2ssiZbZU9/f3q8dfYFCkrW+mYc22PipdS1sfUM5tkoE7/zXIcLO89tpruOKKKyr9njFoNy8ickBV+/P+LW+JgDtr8q2se9oUv+QDm2FNntW9D5umJ+nAZliTZ3XvFqHpSzawGdbkGcOa2kkysBnW5BnDmrIkF9gMa/KOYU1ZkurDZlhTDOoa1s9895vl/s9o5fR+9Dv08aoTPvroI3z88ceYO3du6Y+dzA6bYU2xCBHWz7zy6yBjnQ7rVw4Tx6suWLBgRv++qAceeACPPvpokMdOIrAZ1hSzuvRh1/WVQ6vFixdj//79QR47iVsiDGuKVZ36sKsMa6vjVU+ePIkFCxbg/fffLzzW6Uhihx0qrEcPv1z6YxJNqHu3SMjxWx2vun//flx55ZWYN28efve7301rzEUkEdihwnpo+92lPy4RwLDu9p681fGqw8PDOHLkCObNm4d9+/Z1HONMJBHYZZt8T5yobAzr7u/JWx2vOnfuXAwMDGDDhg3Yu3dvxzHORBL3sMvENzAptNqGdbMNb2AlcLzDyYHdfh6wOV718OHDePrpp7F+/Xp86lOfwq5du3D77bdj4cKFHcc6HTxedRrahTWPV6WyPfPdb4YJ62n2LXeLx6u2x+NVK8CdNVWlrn3Y1D0GdgEMa7JUlz5s6h4DOwfDmizF3odd5i3XOuh2PhjYHTCsyVLs3SI9PT0YGxtjaDepKsbGxtDT0zPjx2CXSAaGNVmKPawBYMmSJRgZGcHx48dNvr9HPT09WLJkyYz/PQO7DYY1WapDWAPjhy0tXbrU7PvXEW+JtGBYk7U6hDWFwcCehGFNHjCsKUtuYItIn4j8XEQeaf4Je5isEYY1ecE+bMpSdIe9WVVvaf4Jc26gIYY1ecY+bJqQ/C0RhjV5FnsfNpWraJfIKhG5CsBCVf3byZ8QkUEAgwDQ29tb8vDCYliTZ2V3i7SeqVNm/fNMnWoU2WEfA/Cwqm4BcFpE+iZ/UlW3qWq/qvY3Go0AQwyDYU2ehW7tY/3HqUhgnwdg4r71CIALww2nGixW8oxhTVmKBPYGAF9q/v3TAH4TbDQVYLGSdwxrylIksH8M4EIRuQnA26p6LPCYgmGxUgwY1pQl901HVX0bQOdf7xABFivFIlQf9tD2naz/yCXR1sewppiVdU87VP2PHn659Mek9pIIbIY1xarMNyBDhfXQ9rtLf1xqL4nA5s6CYuT91L7Jr1ypGkkENncWFJuYwpqvXKuTRGCXjTsLColhTVkY2NPEYqXQGNaUhYE9DSxWqgLDmrIwsAtisVJVPJ6Hzfr3gYFdAIuVLFmfh83694OBnYPFSpasz8Nm/fvCwO6AxUqWrLtFWP/+MLAzsFjJEsOa2mFgt8FiJUsMa8rCwG7BYiVrDGvKwsCehMVKHjCsKQsDu4nFSl5Y9GGz/uPAwAaLlXwL3YfN+o9H8oHNYiXPQvdhs/7jknRgs1jJM/72dGqVbGCzWMkzhjW1k2Rgs1jJM4Y1ZUkusFms5B3DmrIkFdgsVooBw5qynGs9gKqwWCkWofqwh7bvZP1HLokdNsOaYlbWPe1Q9T96+OXSH5PaKxTYIvJZEYn2V4QzrClWZb4BGSqsh7ZHGw3RKbrDvh7AOSEHEhJ3FhQj61P78kx+5UrVyA1sEfkCgJcqGEsw3FlQbGIKa75yrU6RHfZlAH4VeiAx4c6CQmJYU5aOXSIicg2A5wDM6vA1gwAGAaC3t7fUwXkUtFj33B/uybryrnLHSsEwrClL3g67AeBSAMsB9InIJa1foKrbVLVfVfsbjUaIMboRuli976yoGl7Xn2Ftr+MOW1V/CgAi0gfgclV9vYIxuVRFsTKsCQh4Hva51854TAxrH4q86TgH410iy0Wk/vc82qiqWEOFdd7h9eRb6POw8zCs/cgNbFX9SFX/SVVXq+pvqxiUJ1UWa6iw7ubJSrZCn4edh2HtSxI/6ThT1sVq/WQlW9bvaVjXP03FwM5gXazWT1ayZb3+1vVP7TGw27AuVusnK9myXn/r+qdsDOwW1sVq/WQlewxrysLAnsS6WBnWBNj1YVvXP+VjYDd5KFaGNQEB+7A78FD/lI+BDT/Fyj5said0a6eX+qd8yQe2p2JlHza1Ct3a6an+KV/Sge29WNmHnTb+9nRqlWxgey9WvgGZNoY1tZNkYHsvVoZ12hjWlCW5wPZerAxrYlhTlqQC23uxMqwJCNct5L3+KV/H87DrJIZiZVgTEK5baGj7Ttf1T/mS2GHHENYA+7CpvbJeeYWq/9HDL5f+mNReEoEdQ1gD7MOmqcq8TRYqrIe2313641J7SQR2rDsL9mGnzft7GpNfuVI1kgjsGHcW3p+sFJb39Y/lNmPdJBHYZQu9s/D+ZKWwvK8/w9oOA3uaQher9ycrhed5/RnWthjY08Cwpip4XX+GtT0GdkFVFCvDmgCb87DzMKx9YGAXUFWxsg+b2rFu7WRY+8HAzlFlsbIPm1pZt3YyrH1hYHdgXazWT1ayZf2ehnX901QM7AzWxWr9ZCVb1utvXf/UXu7hTyJyPoCbAJwEcI6q/lvoQVmzLlbrJyvZsl5/6/qnbEV22F8C8J6q/hDAQNjh2LMuVusnK9ljWFOW3B22qj4uItL88PeBx2PKulgZ1gTY9WFb1z/lK3oe9jwR+QcAj7Z+QkQGAQwCQG9vb4lDq5aHYmVYhzV73h8FWd9dm1aU+njBWjvPvTbze3qo/0/suX/KfyprM3P8vQ+DDLkqhd50VNUPVHUTgOtE5IKWz21T1X5V7W80GkEGGZqXYmUfdljW6ztToVs7vdR/FnZLnZEb2CJyvogsaH44DODLYYdULU/Fyj7ssHjE7lSe6r8d3iY8W5Ed9noAX23+/SIAtdmupVSsVL7Yj9hNqf7rENZAscB+BEBDRNYCeFdVDwQeUyVYrNSN2I/YZf3HqUiXyNsAtlYwlsqwWKkbsZ/ayPqPV3I/6chipW7Efmqj9/oH2C3VSVKB7b1YGda+xX5qo/f6n8BuqWzJBHYMxcqw9qsOpzZ6r/8J7JbKlkRgxxDWAHcWXlnXT1lhFWr8sbc2xiSJwI4hrAHuLDyqS1jvvPfWYGEdc2tjbJIIbO4s4t9ZWKhTWIcIq9hbG2OURGBzZ1GPYq0Sw7qz2FsbY5VEYJeNO4t6Y1h3xrC2w8CeJhZrvVmHNeC7Wyj2PvTYMbCngWFdbx7CGrA7DztP7H3odeiWYmAXxJ1FvXkJayDgedhdqEMfeh26pRjYBXBnUW+ewrod67Cynh92S53BwM7BnUW9WYdRHuuwsp4f3iY8GwO7gzoVK01lvb55rMPKen6sr98jBnYGFmu9Wa9vHuv1t54f6+v3ioHdBou13qzXN4/1+lvPj/X1e8bAbsFirTfr9S0i5bAG2C3VCQN7EutiZViHZb2+RaUc1gC7pTphYDd5KFaGdVjW61uURVh5qP8J7JbKxsCGn2LlziIs6/WdqdBh5aX+s7Bb6ozkA9tTsXJnERaP2J3KU/23w9uEZ0s6sFMqVipf7EfsplT/dQhrIOHAZrFSN2I/Ypf1H6ckA5vFSt2I/dRG1n+8kgtsFit1I/ZTG73XP8BuqU5yA1tEzhGRjSJyg4iEu2FXAe/FyrD2LfZTG73X/wR2S2UrssNeBeA9VX0MwIci8rnAYwoihmJlWPtVh1Mbvdf/BHZLZSsS2G8BOD3p4xOBxhJMDGENcGfhlXX9lBVWocYfe2tjTHIDW1WHVfVnzQ+XAXgj7JDKF0NYA9xZeFSXsN55763Bwjrm1sbYnFv0C0XkZgBbVFVb/vsggEEA6O3tnflI9tw/5T+Vt7P4x4A7ixWlP+6EMot1zdbnp3y+rDDatSncHFiqU1gPfH4ZHhwud3yxtzbGqFCXiIhcBeAtVZ3y2lpVt6lqv6r2NxqN0gbGnUXarV3WrOfHe1jF3toYqyJdInMBXKKqL4jIHBEJvp3yvlix7yysw8g76/mJqf4Z1tUqssPeCOAGEXkEwC8AvBNyQN4XK/ZitQ4j7zzMT8r1D/i+fmu597BVdSuArRWMhWHNsDblZX5Srf8JIbulBlYGGXJl3PykY+phDfAn3Cx5mh+PrZ116EOvQ7eUm8BOPayBsDsLL2Hkkaewbsc6rKznh33YZ7gJbK8/NFKXnUWsPzQRmnUY5bEOK+v58f7Ku2puAtvjy6A6FWuMrY2hWa9vHuuwsp4f6+v3yE1gt+LOwnexhm5tDM16ffNYr7/1/Fhfv1cuA9t6sVisnVnPT7e8j996/a3nx/r6PXMX2NaLxWLtzHp+uhXD+FOuf8B3A4I1V4FtHVbWxWp9/Xms56dbsYw/1fqf4LUBwQM3gW0dVh6KlWEdVizjtwgrT+vrsQHBCzeBnXpYA353Fl7mp1uxjj90WHlfX+sGBE/cBLZVWHkqVo87C0/z060Y+9BDh5X39bV+5e2Nm8C2CKuUinUmvM+PNR6xGxbDeio3gd2KOwve0/eMR+yGZV3/XrkMbBYrw9ozntoYlnX9e+YusFmsDGvPeGpjeAzrbK4Cm2HNsPYs9lMbY1lfr91SHrgJ7NTDGmBro2d1OLUxlvX12C3lhZvATj2sAbY2emU9P2WFVaxH7Fp3S3niJrBDhlUsYcTWRn+s56fMsIrxiF3r24TeuAnskGHFnUWcrY3WrOfHe1jF3toYIzeB3Yo7C97Tt2Q9P97DKvbWxli5DGzvixX7zsI6jLyznp+Y6p9hXS13ge19sWIvVusw8s7D/KRc/4Dv67fmKrAZ1gxrS17mJ9X6n8A+7GxuAjv1sAbY2mjJ0/x4DKs69KGzD7tEqYc1wNZGK57Cuh3rsLKeH/Zhn1EosEXk5tAD8foyqC47i1hbG0OzDqM81mFlPT/eX3lXLTewRWQNgA2hB+LxZVCdijXG1sbQrNc3j3VYWc+P9fV7lBvYqroLwNsVjOUs3Fn4LtbQrY2hWa9vHuv1t54f6+v36txuH0BEBgEMAkBvb2/XAwLKX6wHh6f3/VmsnQWdnz33B7z+a8OPvwTW6289PyGvf83W57seX9b87Nq0ouvHztP1m46quk1V+1W1v9FodD0gFmvCYQ22NgI8tTHl+s/jpksEsA8r68Wwvv48bG2sRqr1P4ENCNncBLZ1WHlYjNTDGmBrI2DTh+2h/iewASFbkS6RrwNYKSKrQg4k9bAGuLMA4mxtDC10WHmp/yypNyBMVqRL5HFV/YyqPhVyIFZh5WkxuLOYKobWxpBCh5X1+ubhK++zubklYhFW3hajVeo7C+snax4esRuW9fp7nB83gd2KO4u0i9X6+vPwiN2wrNff6/y4DGwWa9rFan39edjaGJb1+nueH3eBzWJNu1itrz8PWxvDS7n+87gKbIZ12mENsLURCPcGvIf1LYINCNncBHbqYQ1wZwGwtREI9wa8h/Utgg0I2dwEduphDXBnAbC1sR3vfehsbayOm8AOGVaxLAZ3FlOxtdF/HzpbG6vjJrBDhhV3FnHuLFK/p299/XnY2lg9N4HdijuLtIvVOqys58f6+vOwtdGGy8COqVhDSL1Yrdffen6srz8Pw9qOu8BmsaZdrNbr72F+Uq5/gA0InXT9G2fKZP1kzcOwDi/1sAbszsPOE3sf+ngDwk7z9e2Gmx126mENcGcBsLURsDkPO08d+tBjbkCY4CawUw9rgK2NAFsb22EfetoNCJO5CWyrnVUe7iw6Y2tjWOxDj+eVdxXcBLbFzipPnYo1xp1F6vf0rcPKen6srz+Pxfy4CexW3FnEU6whMKwZ1rHUf5Xz4zKwrReLxdoZu2XCsl5/6/mxvv48lvPjLrCtF4vF2hnDOryU6x9gA0InrgLbOqysF8P6+vOwtbEaqdb/BDYgZHMT2NZh5WExUg9rgK2NgE0ftof6n8AGhGxuAjv1sAa4swDibG0MjX3oaTcgTOYmsK3CytNicGcxVQytjSGxD52vvCdzE9gWYeVtMVqlvrOwfrLmYR96WNbr73F+CgW2iGwWkdtF5C9CD2gCdxZpF6v19edhH3pY1uvvdX5yA1tEvgDgI1X9ZwADInJe6EGxWNMuVuvrz8PWxrCs19/z/BTZYf85gL3Nv78O4Kpww2Gxpl6s1tefh62N4aVc/3mKBPanARxv/v0dAItDDYZhnXZYA2xtBMK9Ae9hfYtgA0I2UdXOXyDyEIDvqeohEflrAGOq+h+TPj8IYLD54Z8COBRqsC0WARit6Ht5lfocpH79AOcAqMccfEZVG3lfVOQ3zvwfxifkEIA/BjA8+ZOqug3AtpmMsBsi8pKq9lf9fT1JfQ5Sv36AcwCkNQdFbonsBvBnzb9fAmB/uOEQEVGW3MBW1QMA5ojIHQCeUdVT4YdFREStCv0SXlX9u9ADmYHKb8M4lPocpH79AOcASGgOct90JCIiH9z8aDoREXUWZWCLyM3WY7AkIueIyEYRuUFEqvl1zY6IyPki8lcisk5ENliPx5KIfDbFGgAAEekTkZ+LyCPNPwusxxRadIEtImsAbLAeh7FVAN5T1ccAfCgin7MeUMW+hPHr/yGAAeOxWLsewDnWgzC0WVVvaf5533owoUUX2Kq6C8Db1uMw9haA05M+PmE1EAuq+jiAR5sf/t5yLJaa5/y8ZD0Oqk50gU2Aqg6r6s+aHy4D8IbleIzME5GtOBPcKboMwK+sB2FslYj8jYj8vfVAqsDAjljzXv4WTbDVR1U/UNVNAK4TkQusx1M1EbkGwHPW4zB2DMDDqroFwGkR6bMdTngM7EiJyFUA3lLV7n7/V4SabzpOvME0DODLluMx0gBwKYDlAPpE5BLj8Vg4D8DEfesRABcajqUSDOwIichcAJeo6gsiMkdEVliPqWLrAXy1+feLACT3Py1V/amqPgNgH4D/VdXXjYdkYQPG34AGxk8V/Y3dUKoRXWCLyNcBrBSRVdZjMbQRwA0i8giAX2D82NuUPAKgISJrAbzbPD4hOSIyB+NdIstFpNd6PAZ+DOBCEbkJwNuqesx6QKHxJx2JiCIR3Q6biChVDGwiokgwsImIIsHAJiKKBAObiCgSDGwiokgwsImIIsHAJiKKxP8DlI1ysT61uHYAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.bar(x + bar_width, y2, width=bar_width, align='center',label='class B', alpha=0.8, hatch='/')# hatch表示填充图案，越多越复杂\n",
    "plt.bar(x, y1, width=bar_width, align='center',label='class A', alpha=0.5, hatch='///') # alpha 表示透明度 \n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWwAAAD8CAYAAABTjp5OAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAEFNJREFUeJzt3X+MVXV6x/HPUx0Z5EdDYVB0OjugsLrxH5eJkvXHQtSRbsQVDHH/AZE2038wjk38Q5slY01rYmTSdjSmFAtkN11MSliKVWIw7AoKQUBpJ6RU3S3rUMI4I/6IcVgmPv3jXljEmbnHmXPumeee9yshc8/cy7nP+ebeD1++95znmrsLADD+/VHeBQAAkiGwASAIAhsAgiCwASAIAhsAgiCwASAIAhsAgiCwASAIAhsAgrg0zZ3NmDHDm5ub09wlANS8Q4cO9bl7Q6XHpRrYzc3NOnjwYJq7BICaZ2bHkzyOJREACILABoAgCGwACCLVNWwAOOfs2bPq6enRwMBA3qWMG/X19WpsbFRdXd2o/j6BDSATPT09mjJlipqbm2VmeZeTO3dXf3+/enp6NHv27FHtI9GSiJn9xMweMLPnR/UsAApnYGBA06dPJ6zLzEzTp08f0/84Ks6wzaxR0h+7+z+ZWb2ZmfM1NQASIKy/bqzjkWSGvVTSYUly982ENQDkI8kadrOky8zsNknfkdROaAP4tpZ07U11fzsevvVbPf7s2bPavXu3du7cqc7OzlRrkaTe3l7dd999Wrt2rY4dO6Y5c+ZoyZIlqT5HksCeIum/3f0/zOzPJd0qac+5O82sTVKbJDU1NaVaXFrSfqFc6Nu+aIBKOh68o/Rz1Z2ln5t2pbO9+fXMax/P6urq1NraqrfeeiuT/c+cOVPz5s3T4sWLtXjxYq1evTr1wE6yJNIn6cPy7d9JuurCO919vbu3uHtLQ0PFS+EBoOadPn1as2bNSn2/SWbYb0hqkfSfkq6U9F+pVwEAKXJ3Pffcc7ruuuv09ttv64knnhjycYcPH9bRo0fV0NCg3t5erVixQidOnNArr7yiCRMmaN++fXrhhRf07rvv6ujRo/r444/V19enjo6OIfc3MDCg3bt3a9u2bXrsscdSP64kM+zXJP2pmd0vqc7d3029CgBI0csvv6w5c+borrvuGnGme+bMGd17772aP3++jhw5IqkU4jNmzNDKlSu1Zs0aSdKePXt0/fXXa82aNVq+fPmw+6uvr9eiRYu0bt06Pf744+kelBIEtrt/5e5PuvtWd/+X1CsAgJQdPXpUc+fOlSQ99NBDwz5uypQp2rBhgz744ANNmDBBknTPPffo+PHjWrFixflzptva2rR9+3atXr1aEydOrPj8dXV1GhwcVF9fXwpH8wf0EgFQc2bPnq3jx0sdS/v7+3XixIkhH9fZ2alHH31UN9988/mQPXz4sNrb27Vx40Zt3LhRktTd3a2Ojg51dXXp+eeTXT/4+eefa8qUKekcUBmXpgOoimqeUbVs2TI99dRTOnnypCSdny2/8cYbOnLkiN58803dcsstWrBggTZu3Khp06apr69P+/bt06FDh7Rz5061tLTo1ltLNb/00kvav3+/rrnmGi1cuHDI5+zp6dGxY8f02muv6eTJk1q2bNn5WXtaCGwANefSSy/Vk08++bXf1dfXq7W1Va2tred/19bWdv720qVLJUm33XbbN/b3zDPPVHzOxsZG7du3b7QlJ1KIwD72SoZL75yHDaBKWMMGgCAKMcP+7o9W510CAIwZM2wACILABoAgCGwACKIQa9gAxoHdT0vKr/tg1u1Vz/nyyy/11VdfadKkSanvmxk2gEI411516tSpmT7Ps88+q61bt2aybwIbAFI0a9YsHThwIJN9syQCoObk1V71zJkzmjp1qj777LNMjosZNoCak1d71QMHDujGG2/U5MmT9emnn6Z7UCKwAdSgvNqrdnd368SJE5o8ebL279+f4hGVFGJJhF4iQLGca686b9489ff3a2BgQFdfffU3HtfZ2akXX3xRZqZXX31Vg4ODOnLkiNrb2zU4OKj29nbNnz//fHvVL774QmvXrtW6deuGfN5JkyZp4cKFmjlzprZs2aK777471eMqRGADGAcWlb6BpWPR17+JZazbQ8mjvep7772n119/XStXrtTll1+uHTt26JFHHtH06dMr1ptUIQKbXiJAseTRXnXu3LnavHmzJKm5uVnvvPPOqGofCWvYABAEgQ0AQRDYADLj7nmXMK6MdTwIbACZqK+vV39/P6Fd5u7q7+9XfX39qPdRiA8dAVRfY2Ojenp69NFHH+VdyrhRX1+vxsbGUf99AhtAJurq6jR79uy8y6gpLIkAQBAENgAEUXFJxMya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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.bar(x + bar_width, y2, width=bar_width, align='center',label='class B', alpha=0.8, hatch='-')# hatch表示填充图案，越多越复杂\n",
    "plt.bar(x, y1, width=bar_width, align='center',label='class A', alpha=0.5, hatch='|||') # alpha 表示透明度 \n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "## 堆积折线图 stackplot \n",
    "## Draws a stacked area plot.\n",
    "犹如地表断层一样"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = np.arange(1,6) \n",
    "y0 = [0,3,4,2,5]\n",
    "y1 = [2,4,1,6,3]\n",
    "y2 = [6,2,3,5,1]\n",
    "\n",
    "labels = ['Blue', 'Brown', 'Green']\n",
    "colors = ['#8da0cb', '#fc8d62', '#66c2a5']\n",
    "plt.stackplot(x, y0, y1, y2, labels=labels, colors=colors)\n",
    "plt.legend()\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "## 间断条形图 broken_barh\n",
    " 间断条形图主要是在条形图的基础上绘制，用来可视化定性数据的相同指标在时间维度上的指标值的变换情况\n",
    " \n",
    " 实现定性数据的相同指标的变化情况的直观比较\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "No handles with labels found to put in legend.\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "## 间断条形图 broken_barh\n",
    "# 间断条形图主要是在条形图的基础上绘制，用来可视化定性数据的相同指标在时间维度上的指标值的变换情况\n",
    "# 实现定性数据的相同指标的变化情况的直观比较\n",
    "\n",
    "mpl.rcParams['font.sans-serif'] = ['LiSu'] # 隶书字体\n",
    "mpl.rcParams['axes.unicode_minus'] = False\n",
    "xrange_1 = [(30,100),(180, 50), (260, 70)] # 30,100表示起点为30， 沿着x轴正方向移动100个单位\n",
    "yrange_1 = (20,8) # 20,8 表示以20为起点，沿着y轴向上移动8个单位\n",
    "\n",
    "xrange_2 = [(60,90), (190, 20), (230, 30), (280, 60)]\n",
    "yrange_2 = (10, 8)\n",
    "plt.broken_barh(xrange_1, yrange_1, facecolors='#8da0cb')\n",
    "plt.broken_barh(xrange_2, yrange_2, facecolors='#fc8d62') # 这个颜色要么只指定一个，要么为所有的块都分别指定一个\n",
    "plt.xlabel('演出时间')\n",
    "\n",
    "plt.xticks(np.arange(0, 361, 60))\n",
    "plt.yticks([15, 25], ['歌剧院A','歌剧院B'])\n",
    "plt.grid(axis='y', color='gray')\n",
    "plt.legend()\n",
    "plt.show()\n",
    "\n",
    "\n",
    "# 可以从图里面直观地看出两家影院的演出时间的不同、分析他们的规律"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 阶梯图 step\n",
    "## 很像折线图，显示时序数据的波动周期规律"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "x = np.linspace(0, 10,20)\n",
    "y = np.sin(x)\n",
    "plt.plot(x,y,label='y=sin(x)')\n",
    "plt.step(x,y,where='pre',label='y=step(sin(x))-pre')\n",
    "plt.step(x,y,where='mid',label='y=step(sin(x))-mid')\n",
    "plt.step(x,y,where='post',label='y=step(sin(x))-post')\n",
    "'''where: [ 'pre' | 'post' | 'mid' ]\n",
    "If 'pre' (the default), the interval from x[i] to x[i+1] has level y[i+1].\n",
    "If 'post', that interval has level y[i].\n",
    "If 'mid', the jumps in y occur half-way between the x-values.\n",
    "'''\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 堆叠直方图 \n",
    "## stacked=True"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "## 堆叠直方图 \n",
    "## stack=True\n",
    "score_1 = np.random.randint(0,100,100)\n",
    "score_2 = np.random.randint(0,100,100)\n",
    "\n",
    "x = [score_1, score_2]\n",
    "colors = ['#8dd3c7', '#bebada']\n",
    "labels = ['class A','class B']\n",
    "\n",
    "bins = range(0, 101, 10)\n",
    "plt.hist(x, \t# 输入数据\n",
    "\t\tbins=bins,  # bins的个数或者bins的边缘范围\n",
    "\t\tcolor=colors, \n",
    "\t\trwidth=10, \n",
    "\t\tstacked=True,   ### 堆叠直方图的关键\n",
    "\t\tlabel=labels)\t\n",
    "plt.xlabel(\"score\")\n",
    "plt.ylabel(\"class\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.hist(x, \t# 输入数据\n",
    "\t\tbins=bins,  # bins的个数或者bins的边缘范围\n",
    "\t\tcolor=colors, \n",
    "\t\trwidth=0.8, \n",
    "\t\tstacked=False,   ### 如果不堆叠，则会并列\n",
    "\t\tlabel=labels)\t\n",
    "plt.xlabel(\"score\")\n",
    "plt.ylabel(\"class\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## pie 分裂式饼图\n",
    "explode参数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "kinds = '简易箱','保鲜箱', '行李箱', '密封箱'\n",
    "colors = ['#e41a1c', '#377eb8', '#4daf4a', '#984ea3']\n",
    "sold_nums = [0.05, 0.45, 0.15, 0.35]\n",
    "explode = (0.1,0.1,0.1,0.1)\n",
    "plt.pie(x=sold_nums, \n",
    "\t\tlabels=kinds,\n",
    "\t\tautopct=\"%3.1f%%\", \n",
    "\t\tstartangle=60, \n",
    "\t\tcolors=colors,\n",
    "\t\texplode=explode)  # 设置偏离半径的百分比\n",
    "plt.show()\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 案例 绘制内嵌环形饼图\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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nK7iy09XaqvyalCVX4PaYjMUue3/Xun8tDCGesEY6gWfSKPdt53J4R3ixfManhftrlwQslelE3YC2A/gCAC7h4dMUc2GBhfqehEAAagLOtEuu9hDcoq9GY7tyKlYH0u51VqZW61U5lZrLeVWzlJuhbXCBkuFDdZKGyRnw822PIlhCTQmDXQ+Gmh9tND5aKDz1UreoV42nwijZAjQaWVJsUpO6RTDMYcFLZ8C4MTZj1zQMivUTY4GF6opaAF0Ql3giXLZXFGSS24PgjCGYwI4gTVJLsllq3Y4rRVWpbbUwplLLBqn1cW4bC44bS64bCJcNhfqPr/wb5dNbPysiAC8mgOv4c9+cBDO/ls4+zmv4SFoeUXro7UbAnVOva8WGm+1wGl4leQUaySXXAoF+QzHnOY1XBYhJBfAcQDpoBsWKeqKaHChPIEB4AMgFEDI2Y8gySWZJJfkI0uKCYriDcALhBgIQ3QMQ7QMx2gYllE1+lkIiCwpTlmUbYok22RZsUBBLaDUAqSKsKSS5ZhKVmArCCElAAou+igG0LKnVxTVgtHgQrU2BI3voKqALk9RlEfQ4EJRFEW5XWPfAVIURVFUo9HgQlEURbkdDS4URVGU29HgQlEURbkdDS4URVGU29HgQlEURbkdDS4URVGU29HgQlEURbkdDS4URVGU29HgQlEURbkdDS4URVGU29HgQlEURbkdDS4URVGU29HgQlEURbkdDS4URVGU29HgQlEURbkdDS4URVGU29HgQlEURbkdDS4URVGU29HgQlEURbkdDS4URVGU29HgQlEURbkdDS4URVGU29HgQlEURbkdDS4URVGU29HgQlEURbkdDS4URVGU29HgQlEURbkdDS4URVGU29HgQlEURbnd/wNKsEzKqtXawwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "## 案例 绘制内嵌环形饼图\n",
    "elements = ['面粉','砂糖','奶油','草莓酱','坚果']\n",
    "weight_1 = [40, 20, 15, 10, 15]\n",
    "weight_2 = [30, 25, 15, 20, 10]\n",
    "\n",
    "colormap = ['#e41a1c', '#377eb8', '#4daf4a', '#984ea3','#ff7f00']\n",
    "outer_colors = colormap\n",
    "inner_colors = colormap\n",
    "\n",
    "wedges_1, texts_1, autotexts_1 = plt.pie(weight_1, \n",
    "\tautopct=\"%3.1f%%\", \n",
    "\tradius=0.7,\n",
    "\tpctdistance=0.6, \n",
    "\tcolors=inner_colors,\n",
    "\ttextprops=dict(color='c'),\n",
    "\twedgeprops=dict(width=0.3,edgecolor='w'))\n",
    "wedges_2, texts_2, autotexts_2 = plt.pie(weight_2, \n",
    "\tautopct=\"%3.1f%%\", \n",
    "\tradius=1,\n",
    "\tpctdistance=0.8, \n",
    "\tcolors=inner_colors,\n",
    "\ttextprops=dict(color='c'),\n",
    "\twedgeprops=dict(width=0.3,edgecolor='w'))\n",
    "plt.legend(wedges_1,elements, fontsize=12,title='配料表',loc='center left', bbox_to_anchor=(0.91,0,0.3,1))\n",
    "\n",
    "plt.setp(autotexts_1,size=15,weight='bold')\n",
    "plt.setp(autotexts_2,size=15,weight='bold')\n",
    "plt.setp(texts_1, size=12)\n",
    "plt.title(\"两种配料表\")\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "([<matplotlib.patches.Wedge at 0x1c25d02ca90>,\n",
       "  <matplotlib.patches.Wedge at 0x1c25d02cda0>,\n",
       "  <matplotlib.patches.Wedge at 0x1c25d0776d8>,\n",
       "  <matplotlib.patches.Wedge at 0x1c25d077470>,\n",
       "  <matplotlib.patches.Wedge at 0x1c25cd4c710>],\n",
       " [Text(0.646564,0.889919,''),\n",
       "  Text(-0.980107,0.499389,''),\n",
       "  Text(-0.777817,-0.777818,''),\n",
       "  Text(0.339919,-1.04616,''),\n",
       "  Text(1.04616,-0.339919,'')],\n",
       " [Text(0.470228,0.647214,'30.0%'),\n",
       "  Text(-0.712805,0.363192,'25.0%'),\n",
       "  Text(-0.565685,-0.565685,'15.0%'),\n",
       "  Text(0.247214,-0.760845,'20.0%'),\n",
       "  Text(0.760845,-0.247213,'10.0%')])"
      ]
     },
     "execution_count": 49,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "wedges_2, texts_2, autotexts_2"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 箱线图\n",
    "## 用于多组定量数据的分布比较\n",
    "## 箱线图由一个箱体和箱须组成，第一四分位数，中位数、第二、三四分位数组成箱体\n",
    "## 箱顶之外的竖直可以理解为离群点"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "test_1 = np.random.randn(5000)\n",
    "test_2 = np.random.randn(5000)\n",
    "test_list = [test_1, test_2]\n",
    "labels = [\"随机数生成器-1\",\"随机数生成器-2\"]\n",
    "colors = ['#793217', \"#218731\"]\n",
    "\n",
    "whis = 1.6\n",
    "width = 0.35\n",
    "\n",
    "bplot = plt.boxplot(test_list,\n",
    "                    whis=whis, # 四分位间距的倍数\n",
    "                    widths=width,  # 箱体的宽度\n",
    "                    labels=labels, \n",
    "                    patch_artist=True,  # 是否给箱体添加颜色\n",
    "                    sym='o') # 离群点的标记样式\n",
    "\n",
    "for patch, color in zip(bplot['boxes'], colors):\n",
    "\tpatch.set_facecolor(color)\n",
    "\n",
    "plt.ylabel(\"随机数值\")\n",
    "plt.title(\"随机数生成器抗干扰能力的稳定性比较\")\n",
    "\n",
    "plt.grid(axis='y', ls=':',lw=1, color='gray',alpha=0.4)\n",
    "plt.show()\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 也可以不指定那么多参数，都使用默认值\n",
    "mpl.rcParams['font.sans-serif'] = ['FangSong']\n",
    "mpl.rcParams['axes.unicode_minus'] = False # 无法显示负数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "test_1 = np.random.randn(5000)\n",
    "test_2 = np.random.randn(5000)\n",
    "test_list = [test_1, test_2]\n",
    "labels = [\"随机数生成器-1\",\"随机数生成器-2\"]\n",
    "colors = ['#793217', \"#218731\"]\n",
    "\n",
    "whis = 1.5\n",
    "width = 0.35\n",
    "\n",
    "bplot = plt.boxplot(test_list) # 离群点的标记样式\n",
    "\n",
    "plt.ylabel(\"随机数值\")\n",
    "plt.title(\"随机数生成器抗干扰能力的稳定性比较\")\n",
    "\n",
    "plt.grid(axis='y', ls=':',lw=1, color='gray',alpha=0.4)\n",
    "plt.show()\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 不绘制离群点 showfliers=False\n",
    "bplot = plt.boxplot(test_list,\n",
    "                   showfliers=False) \n",
    "\n",
    "plt.ylabel(\"随机数值\")\n",
    "plt.title(\"随机数生成器抗干扰能力的稳定性比较\")\n",
    "\n",
    "plt.grid(axis='y', ls=':',lw=1, color='gray',alpha=0.4)\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAEICAYAAABRSj9aAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAGwBJREFUeJzt3X+cXHV97/HXOwkJSSAha/jdYPhdbECQFBFBoEIsikXsregDFUotvW211V6lWm8vqVq9Wh9qVa5WxVsrPApVSsFSfhRFroBWNkbDSowEYpoQExZ2FxbCQrJ87h/f74TDMLs7m8wws9++n4/HPnZm9sw5n3POzPt8z/d8Z1YRgZmZlWtapwswM7P2ctCbmRXOQW9mVjgHvZlZ4Rz0ZmaFc9Bb0ySp0zWY2eQ56LuMpNn5924N/nbuGM85dZLLOEjS2yQdJWmupLMk7dfEU/eW9K5JLusCSfs2Wp/89x5J8/PtvXNN0yW9QtKLxnjOhZXbp0radzI15efNH+dv51Zuny9p9wnmdXBtGkm/OtH0lecdIekNTUz363X3f6uJ59S26R6S3txkPedMdDDP67qk7rHzx5l+RuX2LEm/10QdZ0ualm/PlHTixNXbeBz03edNkv4Q+Jqk19celHR0/n2ApLl1z3l1ZbrjlRzXaOaS3gQ8BOwJnA7sBxwLDI1VkKQ5ABHxEDBzkutzMDAIfEbSng3+Ph24XNLHgTcBbwX+BLgIeGaMeS6s3L4L+OQ4te8j6VJJ75f015I+LOnPgLePc3A7rhJ4+wHzJZ001jKA84ED8u0DgFfmZTfcBxXDwIsnmAbgLXX3f2OsCSUdLunPgXfmRsOrgXskHSnp1xpMv7Cyrv3AWZW/HdpgEU8A9cF7yDi1/2XtRkQ8Bew1zrQ1J1Se8zRpfxzexPNsDDMmnsReYNOAK0j75heSXgvsCywD/h8pRH5AesPVbKncfjewGjgQ+OMG878PeDkpRGcAA0BExMg4NS2TtDkifgA8NV7xkqaTZjiaH3o8Ip6W9NdAo2U8BtxMCuwe0vpfBrwvIgbHWMxIXtbuwN7AlbnVeghwZ0TcXpswH5z+Kk9/IrA9InrHWwfgoXj2k4RPRsSWfOZwRkTcWre+JwDfBvaRNAw8Djwj6W3Ak8DKcZZzEPCzsf6YW8OzgdskzQIEvAT418o0iyJiQ769F2n/PB4Rl+V9sT/wq8AS4OMNFvNaYPe8LKXZ6I+AAM6SdH5EDNc9ZzAv73jS62is/QTp9VW14/UjaXZEPFm5fwqpYXAM8F5Jt5Be2yuBJZJeB9wTEd8eZ3nWgIO++0wjtXJ/FhH3SNoDeIAU3A8Cx0XENyC1xoCjSC2e9wJ3Aj+KiE9Lemf9jCWdTDpQnALMAr4CHA7sL+kC0gFldUR8q+6pRwP/VjevWcCMiHiibloBH5D0S2AOcKKk95Bea8PAF+umn00KmxcBj+Tn/C+gT9KMiNheWeZLSCFwZl535W2yBrgX+EblANPIDBofbGrzP5IUiq/KB5HbePas4mbStq5OfxTpwPrvpLC7GLiaFMZfJAX+vhGxpe55c0gHqGXAoKRDgHnAURFxYWXS3wFOIrW0Xw/cARwJPCjpiLytDiKdARERQ5JGgUWS3gL8HPiH/JwZwBskjUTE2soyjgY+UN3OucZDgGuqIS9pHrAgb5+VwMuA+tdKvYb7I5/dfQT408rD64B9gM9ExHclLcvbqBfYCnxxggaJjcFB331EavXMl3QOqSU2k9Sy+TGwuG7aHuDQiHgH7GhhNhQRd+SQ+TnwClLXzW7AVaQDwD/WWoc7FpD61hcB/13STOCU3P+7G+nA8u91y9ieW4dXRsSTkn4BrIiIByXt3aCmoXwgWA98AriUFGoHkt7k1QPMKPB9YGFEfF7SS0kBPxM4JiL+83kbM/X17kU6kBwNzJH0SmB3UlA+CXwqIp4hhe29wPdIZ1UXAS/P3WY/AdZJmls5uD0CfCwfkOeTWq8C+vK6H0Rqoe4I+tx1digp1A4FPgpsjojHJP1VXfm/BL4WEb2SziSF3cyI+Eqe12LSQbs273Pyuh5DCtGXA/8N2AB8g3RA/UXdMr4EvFXSgrw9RoGnSdnwmbppTwA2ArcCh5EOINNJwT+d9Jr4Qv3BPx+Ujya35vO2+rNc4w4RsTFvnyclHR8Rt0g6MyK+kw8875P0yepZgDXHQd99ppFakQeSQu0AUqD+HrCNSr91RPTnIBuW9D7gctIpd0OSziCFRQDXkbp4/gepO2dvUuu43mtJYfRIRAznFuHnx1nGNFILdKGk04D/AA7P1xWWAZ+vTCvgD0it+leRWm7vIYXHrcCApN0iYlte3zX5eYfm0/hh4GOkA9eivL2qtZxG6k9+iBSaAfwQuKtRyz8i7s7PO4/Ut/1Z4PeB+RHxpQbTPyTpY5I2A8eTWvGbgU9J+iDpYPLeuuf8U2U7HRQRP8/3D8g1Vm0HnpJ0IDA/r8tVkl6duy/2IQVvbd7X5TOzfuDsvD2PJwX4oYDqW+4RcV8O3pWkg8bDEdFXv67ZKcBXSa/D+4ErSQfGGeO8JmYD55AaKT8lHXjeCHy4wVnE3LxOc4HZkvYBrs1/Phb4Lul9UT0jsSY46LvPNNIb4cWk/tubSC98qAvx3Io6mBSK15D6Y4fHmHYeqcX5DPAu4EbShc+/AN4GDOZWbfU5tW6kTaSW8KGk0D6f1KK7IiLur6t/AXAq6eLukaSW8dnAacCHqhPmfvAv5nD6QkTckpd7Kik8dvRf57OEc0n98EMRcUPuc78iIn4s6XnXIyLiu6RwqM3jDKB/rO6d3HL/LeDFEfGR/Bg8u03HMkA681hLOnP4Q1Lgvysi7hjjOa8DbqjcPwqoD9hnSF0bd5MOGrflYD471/Ui0oGrVv8s0v7qJR3cZpNeQy/Kj88bp5batr5I0gCwLiKurJvuljyfAHoqB8YZkg4G9oiIe+qe82REXF6p8eGI+L9j1LFnXtd9SF1CBwGH5W6iVwLvrx30bXI86qb7TAP+Bfhn0hvrLaTugGtrp+wV55H6YBURD5K6cX5SnSB3txARj5HeQKeQulu2AP9cueB5X4Na9gCuJ7X2zycF9+O5rg81CHnyNJ8ntfYGcpifCXy6wYFkjqQ/JbXmj5H0J5IuIfVLL5f0vyW9RtLuufXXFxEfBx7Os9iP516IRuMPE53OGCN5cp/8icDfkLdhbukO1k1XH5YjpBZuVO6fRNrO7x9jWTNI3W0/rTx8DHX7jtSN8pWI+DvSev4iP/5Z0v5aROqWqTmXtN2JiO+QupbuJh2oLge+nQ8G9bUsInWtAHw1Ij7SIOSJiDvJ2zAi7pb0unyA/XXSdYmGQ2gry5pJuvhefWzHSKCI2Azcnuv5zVz3lcD/BL7jkN95DvruI+Cp3BI8iNRtsycQuS97L9hxMesnEfEwz+7Hl/LsKI/akLnTazOOiJtIrc7dSF0mP5LUQzrVPyJ3pVCZ/rGI2B4RD0bEZRHxb8AvI6K/Miql3ktIrfljSH3aFwFfIPclSzqmUv9ZpAvCD5C6BB4BHo2Ij5EOMF8itXKfyvWsrlu3AyOivrvjiDHqgnGCPiJGIuLLkYbz1ZxBGlFTdUzd/XXA/wFqLdkZwPcj4sqIGJW0f4PFvQP4OqTPEeTH9mwwugXgBKXPLhxHPrOIiNF8PUK1s5Pc7fHDSEMYpXQRfyGp628T6cLpj4HP6rnDXN9I6v7qJ3WtHdSghqpai56IuCEiLiN1hd0QET9q9ARJu+e+90ZDKw/J00zLB/lzSK+Da/LZwRxSA2XM4b82MQd99xEp1N9JCsF3kwJxKykc7geIiOFKi3CW0tC6oUoAH5i7do7Scz/AcwepJfwRUkv7zaSLsXcAzxups6Oo9CGm+Xm+r1L6cM3FSkPiatPMIrVC+4APkLovvhkR15NG9pxIfmPn+q/JF+7m5nV8Ctgzj7Y4ltR98GBtnSQtyN06UhojXr3od1hunf5G7Symgd0ZYxRIZf5/RDqTAZgXaXhmtRV8cGX6WtfWkXm9RvP9OZXpT6ncRtIbSV0wj+SHTs8XVRvVdQBpv98IbIiIR/M8TlIao7/j/RsRT0TEA/nudOB3Sf3nv0Jqga8gtbw/SN5ukn4F2BoR90fE2oj4C9KF0L9UutDdyHTS63OO0ofdDgYWK33o7m16/of6DgM+DdyYt+Xhtf2TX5/H5vqfiYhP5G6eQWC70kCAd5CGCS9tcDZlTXIffffZKyJC0mW1C1ySFpFGorwZGJF0FulUtjYmeSbwBnIrMXuA1Hf/ICm4RnJr+iTSSJERpU+U3pCD9HuSLs/95RdExE8lHUbq455GCpzHgEdJ/cnD+f5epFEqkML6H3NL9oJKfUTEl5U+CPZrpK4p8rrNJAXwWlJ3xPmkboo/rj9riIjB3DVzBKlf+arKn7eQuqRWkF7X1ZZ5zb6M/SGs2vxXApfkbVy7EDgo6S5SGN9eeYpIF0PvJbWKv0nqG79C0qV5u60EahdgzyGNQFpfWeY1kr5G5SJ1xc2kg83m6t8j4i5Jf8Dz+/RrdsvL2Q5cJ+nMfHF4CfDBfBYIcHBE/Gv1iRFxm6TvAX8u6e2kfXtjZV/uSwr7O0kXiAdIr4lDSa+HRyR9q3Kh9fvA9fHsSJmbgW/mg+RTpGtQ9Q7I8z4d+LtIn8O4HPi6pKuB68IjbyZFY5+BWyfk8H2oPuQqf59VDdDaY6QPAo3XWhVplMf6fH8hMBIRj7ew9jkRsXWCaWbWdY8gSeN0BTWaxyLSh4LG+6BOw2UDo+NtpzzdfsC0iNg0iXk3s+4N1zNfg2jZ+HBVRiq1Wt72PRFRfz2hlcvYh5RN9ddfFpK6NSe6OG51HPRmZoVzH72ZWeEc9GZmheuKi7ELFy6MxYsXd7oMM7MpZcWKFQ9HxPO+WqReVwT94sWL6e2d6AsFzcysStL6iady142ZWfEc9GZmhXPQm5kVzkFvZlY4B72ZWeEc9GZmhXPQm5kVzkFvZlY4B72ZWeEc9GZmhXPQm5kVzkFvZlY4B72ZWeEc9GZmhXPQm5kVzkFvZlY4B72ZWeEc9GZmhXPQm5kVzkFvZlY4B72ZWeEc9GZmhXPQm5kVzkFvZlY4B72ZWeEc9GZmhXPQm5kVzkFvZlY4B72ZWeEc9GZmhXPQm5kVzkFvZlY4B72ZWeEc9GZmhXPQm5kVzkFvZlY4B72ZWeEc9GZmhXPQm5kVzkFvZlY4B72ZWeEc9GZmhXPQm5kVzkFvZlY4B72ZWeEc9NY1enp6kNRVPyyf3/Eaxvvp6enp9G6zKWBGpwswqxkcHCQiOl3Gcy2f3301VUjqdAk2BbhFb2ZWOAe9mVnhpnzQ+9TVzKayFyLD2tZHL2k6cAEwCCyJiA+3a1lmZja2drbolwFDEXEt8ISkJW1clpmZjaGdQb8B2F65P9LGZZmZ2RjaFvQR0RcR1+e7hwD3V/8u6WJJvZJ6N2/ezKZNmwDo6+tjZGSErVu3snr1agA2btzIli1bAFi1ahXbtm1jeHiYNWvW1OblnwJ+AAYGBgBYsWLFjvvr1q0DYO3atQwNDTE6OsrKlSsB6O/vZ/369QCsWbOG4eFhtm3bxqpVqwDYsmULGzduBGD16tVs3bqVkZER+vr6ANi0adO4r73aPMZ67a1fv57+/n4AVq5cyejoKENDQ6xduxaAdevWtXWd/Pqf+j87m3u110gz1O4xwpLOA+6OiAfGmmbp0qXR29u7s/Pv6nHO1ryu3JfL58PyRztdxZi6cpvZpOzKPpS0IiKWTjRdW0fdSDoB2DBeyJuZWXu1LeglzQUOi4i7JM2WdHK7lmVmZmNrZ4v+IuBcSVcBtwMDbVyWmZmNoW3j6CPic8Dn2jX/ynLavQgzs7Z5ITJsyn8y1szMxuegNzMrnL+m2LpKbVxxt4hL53VdTVULFizodAk2BTjorWt06/WWWN7pCsx2jbtuzMwK56A3Myucg97MrHAOejOzwjnozcwK56A3Myucg97MrHAOejOzwjnozcwK56A3Myucg97MrHAOejOzwjnozcwK56A3Myucg97MrHAOejOzwjnozcwK56A3Myucg97MrHAOejOzwjnozcwK56A3Myucg97MrHAOejOzwjnozcwK56A3Myucg97MrHAOejOzwu1y0Eua24pCzMysPZoKekknj/H4wcDSllZkZmYtNaPJ6Y6QtC+wJ7A1PxbALGC4HYWZmVlrTNiil/QSYDZwLzAIbAAeA94NXAns3s4Czcxs14zbos/97wcAi4BjgKfz/WmAgH3xBV0zs642btBHxBPArTnwHwB+kxT2zwA3A2cBPe0u0szMdt6EffSSLgF6gfsi4p4Gfz+vHYWZmVlrTBj0EfEJSa8BPinpzvyw8s80YHob6zMzs13U1KibiLhZ0mrgFRFxdZtrMjOzFmp2eCUR8Z+SHpI0LyIea2dRZmbWOpMaMRMRI/UhL+kVrS3JzMxaqemgl/TGBo/NBb7Q0orMzKylJtOiny/pPZJeBSDpZcClwOfaUpmZmbXERB+Ymgf8PvAIMBf4KvBKSVcAP4qIS9pfopmZ7YpxW/S5P/7rwFWkrz34beDIiHgrcJ2kt0jarf1lmpnZzmqm6+Zk0idgBSwGbpf0IdL33owCZ0ma1bYKzcxsl4wb9PlriPcH5gC/CwyRPiC1HvggMBIR15O+EsHMzLrQRF0364CvkPrnbwX6859OIvXbj0paEhHb2lqlmZnttGa6buYCXwb6gBtJrfv/iIiPRsQNpG+2NDOzLtXMd90M5Jv/AiDpZ8D3K5PcJGn3iBhpQ31mZraLmv4KhJqI2AIgaRrp++hnRMSGVhdmZmatsSv/NOQQ4Ejgb1tUi5mZtUFTLXpJJ5JG3DxDGlL5DLANeAKPuDEz62rNtujPJP1v2D2ABcDepH8pOB24sC2VmZlZSzTzH6b2BPYkddOM5ofXA70eVmlm1v2aGXUzDFwi6fiIWCHpONLXIZwpaTZwY0RsbXehZma2cybsupG0JIf7MknHArWvK74X+AFwRhvrMzOzXdTMxdh5pO+12QBcTOqXX0TqxpkDbG9bdWZmtsua6bq5C0DSMPBj4OfAG4AVEXF/e8szM7Nd1fQ4+ojYGBF9EfF0RPwTMAKQ++nNzKxLNRX0kk6U1FN9LCIezDdPaXlVZmbWMs0Mr9wDOAg4Q9IIqY/+MeDlwG2k8fS3tLNIMzPbeRP9K8H5pP8q9VLSt1f2AgcCm4FrSf+M5Ow212hmZrtg3KCPiEeBr0o6D+gB3gz8hDQS5zjSh6j+pt1FmpnZzmv2YuwTpH88UvvvUjNJwy2PqH2bpZmZdadmPjB1PrA5Iu4D7gZ2A64Gbif9UxIzM+tizbToB4D9JJ0EPAjMBi6MiCfxF5qZmXW9Zj4ZG8BiYD7p4ut84FFJbwWmSZoO/ENEjI49CzMz65RmPhl70wtRiJmZtceu/IcpMzObAhz0ZmaFc9CbmRXOQW9mVjgHvZlZ4Rz0ZmaFc9CbmRXOQW9mVjgHvZlZ4Rz0ZmaFc9CbmRXOQW9mVjgHvZlZ4Rz0ZmaFc9CbmRXOQW9mVjgHvZlZ4Rz0ZmaFc9CbmRXOQW9mVjgHvZlZ4Rz0ZmaFc9CbmRXOQW9dp6enB0ld9cPy+R2vof6np6en07vKpogZnS7ArN7g4CAR0ekynmv5/K6rSVKnS7Apwi16M7PCOejNzApXdND71NbMutELnU1tDXpJ57Vz/mZmNrG2Bb2k1wMXtmv+ZmbWnLYFfUR8C9jSrvmbmVlzOtZHL+liSb2Sejdv3symTZsA6OvrY2RkhK1bt7J69WoANm7cyJYt6ZixatUqtm3bxvDwMGvWrAFg/fr19Pf3A7By5UpGR0cZGhqqLcc/U+wHYMWKFQAMDAywbt06ANauXcvQ0BCjo6OsXLkSgP7+ftavXw/AmjVrGB4eZtu2baxatQqALVu2sHHjRgBWr17N1q1bGRkZoa+vD4BNmza15bW3du1aANatW8fAwEDb1qnT+8o/O/8ab8Vrr1lq59hgSX8fERdONN3SpUujt7e3HcvvurHPNrGu3G/L58PyRztdxXN05XayprRq30laERFLJ5qu6FE3ZmbmoDczK147R92cA5wuaVm7lmFmZhNr23fdRMR1wHXtmr+ZmTWn6K4bX6gys270QmdT0UFvZmYOejOz4vn76K0r1T5U0i3i0nldV9OCBQs6XYJNEQ566zrdem0llne6ArOd464bM7PCOejNzArnoDczK5yD3syscA56M7PCOejNzArnoDczK5yD3syscA56M7PCOejNzArnoDczK5yD3syscA56M7PCOejNzArnoDczK5yD3syscA56M7PCOejNzArnoDczK5yD3syscA56M7PCOejNzArnoDczK5yD3syscA56M7PCOejNzArnoDczK5yD3syscA56M7PCOejNzArnoDczK5yD3syscA56M7PCOejNzArnoDczK5yD3syscA56M7PCOejNzArnoDczK5yD3syscA56M7PCOejNzArnoDczK5yD3syscIqITteApH5gfb67EHi4g+W0k9dtavK6TV0lr99CYG5E7D3RhF0R9FWSeiNiaafraAev29TkdZu6Sl6/yaybu27MzArnoDczK1w3Bv2XOl1AG3ndpiav29RV8vo1vW5d10dvZmat1Y0tejMzayEHvZlZ4WZ0uoAqSQuA3waeAqZHxN93tqLWkTQduAAYBJZExIc7XFLLSTovIq7udB2tJGk5aZ89EhFXdLiclitxn0HZ77edyclua9G/ChiKiK8Dp3W4llZbRlq3a4EnJC3pdEGtJOn1wIWdrqOVJL0MeDIi/hY4TdLMTtfUSiXus4qS32+TzsmuCvqIuA64Jt99upO1tMEGYHvl/kinCmmHiPgWsKXTdbTYWcCd+fZa4IQO1tJyhe6zmmLfbzuTk13VdZPtIemjPLsiRYiIPqAv3z0EuL+D5VhzDgD68+0BYP8O1mKT8F/g/TapnOxo0Et6DbCo8tDPIuIO4F2SPidpZUQ81KHydslY6ybpPOBTMYXHtY6z30omYMrus/+qSni/NRIRw0wiJzsa9BFxc/W+pAWS5kXEY6Sj8anANzpS3C6qXzcASScAGyLigQ6U1DKN1q1Qm0hfHLUG6OHZFqJNAaW83+rli7Gjk8nJruqjB94OvDbf3g8oZgdJmgscFhF3SZot6eRO12QTugk4Kd8+DPhhB2uxSSj8/TbpnOy2oL8K2FvS7wCDEbGi0wW10EXAuZKuAm4n9fkWQ9I5wOmSlnW6llbJr7/Zkt4NfDcitnW6plYqcZ9VlPx+m3RO+isQzMwK120tejMzazEHvZlZ4Rz0ZmaFc9CbmRXOQW9mVjgHvZlZ4Rz0ZmaF+/93eoEg3WinKwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "# 水平图\n",
    "\n",
    "bplot = plt.boxplot(test_list,\n",
    "                    vert = False, # 水平\n",
    "                   showfliers=False)  #离群点\n",
    "\n",
    "plt.ylabel(\"随机数值\")\n",
    "plt.title(\"随机数生成器抗干扰能力的稳定性比较\")\n",
    "\n",
    "plt.grid(axis='y', ls=':',lw=1, color='gray',alpha=0.4)\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYQAAAEICAYAAABfz4NwAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3Xt8XHWd//HXJ2matIGWlhZ641IoYCCi2C4CVrErFKty059iRYFtpbIr9bIu/oCuPxa1y4+uuGrxp6vSZVchuMpadNkKItW11FtCMEZiIBAjISSkpAND02kn08/vj++ZMA25TC+Tk3Tez8cjj8zlzDmfc+bM+Xxv5xxzd0REREriDkBERMYGJQQREQGUEEREJKKEICIigBKCiIhElBDkoDMzizsGEdl3SgjjlJlNiv6XDfLepUN85tx9XMaxZvYhM6sys0ozW2Zms/L46EwzW72Py7rSzI4ebH2i96eb2dTo8cwoplIzO9vMjhziM1flPD7XzI7el5iiz00d5r1Lcx5fbmYVI8xrfnYaM3vNSNPnfO5kM7skj+n+YsDzi/L4THabHmZm788znotHSvrRulYPeO3yYaafkPO43MxW5hHHu8ysJHo80czOGjl6GY4Swvj1PjP7a+DfzOzC7Itm9tro/xwzqxzwmbflTLfQgjMGm7mZvQ94HjgcWALMAl4PJIYKyMwmA7j788DEfVyf+cB24Etmdvgg75cCd5jZrcD7gA8CHwNWAHuGmOeMnMdbgS8ME/tRZnaTmV1vZmvN7HNm9rfAFcMkwTNyDoyzgKlmds5QywAuB+ZEj+cAb4qWPeh3kCMJHDfCNADLBzz/y6EmNLOTzOx/A9dGhYu3Ab83s1PM7LRBpp+Rs67dwLKc904cZBE7gIEH6BOGif0z2Qfuvgs4Yphps87M+cxuwvdxUh6fkyFMGHkSGaNKgO8QvsM/mdk7gKOBpcD/EA42vyL8MLO6ch5/AmgC5gIfHWT+TwJvJBxsJwA9gLt7apiYlppZp7v/Ctg1XPBmVkqYYSZ66WV3321ma4HBlvES8ADhwD6dsP5fBa5z9+1DLCYVLasCmAncFZWCTwAecfefZyeMktjN0fRnAX3uXjvcOgDP+ytndu50966oJnKeuz80YH3PBH4KHGVmSeBlYI+ZfQjYCdQPs5xjgT8O9WZUup4EbDazcsCAU4H/ypnmGHd/Jnp8BOH7edndvxp9F7OB1wDVwK2DLOYdQEW0LAuzsb8BHFhmZpe7e3LAZ7ZHy1tI2I+G+p4g7F+5+vcfM5vk7jtznr+ZUIA4Hfg7M3uQsG/XA9Vm9k7g9+7+02GWJ4NQQhi/Sgil5j+6++/N7DDgacIB/lngDHf/HoTSHVBFKEH9HfAI8Ki7/7OZXTtwxma2mJBQ3gyUA98CTgJmm9mVhMTT5O4/GvDR1wL/PWBe5cAEd98xYFoDbjCz54DJwFlm9knCPpkEvj5g+kmEg9KRwAvRZ/4P0GhmE9y9L2eZpxIOFudH627RNmkGHge+l5OIBjOBwZNSdv6nEA6eb4mSzWZeqaU8QNjWudNXERLwTwgHxVXAdwkH7a8TEsPR7t414HOTCYlsKbDdzE4ApgBV7n5VzqTvBc4hlNwvBLYApwDPmtnJ0bY6llCjwt0TZpYBjjGz5cATwL9Hn5kAXGJmKXdvyVnGa4EbcrdzFOMJwL25ycDMpgDTou1TD7wBGLivDDTo9xHVFj8PfDzn5VbgKOBL7v4zM1sabaNaoBf4+ggFFxmCEsL4ZYRS1FQzu5hQsptIKCk9Bhw/YNrpwInu/mHoL7EOyt23RAejJ4CzCU1GZcA9hERRky1t9i8gtP0fA1xjZhOBN0ft02WEBPSTAcvoi0qbd7n7TjP7E1Dn7s+a2cxBYkpECaMNWAfcRDj4zSUcDHITUQb4JTDD3W83s9cREsFE4HR3//OrNmZoiz6CkHBeC0w2szcBFYQD6k7gi+6+h3BQfhz4BaGWtgJ4Y9Rc9zug1cwqc5LgC8AtUeKeSigNG9AYrfuxhBJvf0KImuxOJBz8TgT+Eeh095fM7OYB4T8H/Ju715rZ+YSD4kR3/1Y0r+MJyT0774ujdT2dcLB9I/C/gGeA7xES758GLOMbwAfNbFq0PTLAbsIx5EsDpj0TaAceAhYQEk0pIUGUEvaJrw0sJETJ+7VEtYNoW/1tFGM/d2+Pts9OM1vo7g+a2fnu/nCUoK4zsy/k1iokP0oI41cJoVQ6l3Dwm0M48K4E0uS0q7t7d3TAS5rZdcAdhKr+oMzsPMJBxYH7CE1LnyI0I80klLYHegfhoPWCuyejEubtwyyjhFCinWFmbwV+DZwU9XssBW7PmdaAjxBqCW8hlAQ/STjIPAT0mFmZu6ej9W2OPndi1HyQBG4hJLhjou2VG8tbCe3dzxMOrg78Btg6WE3C3X8bfe4yQtv7V4Crganu/o1Bpn/ezG4xs05gIaFW0Al80czWEJLO3w34zH/kbKdj3f2J6PmcKMZcfcAuM5sLTI3W5R4ze1vUbHIU4QCdnfd9UU2vG3hXtD0XEg70JwI2sCbg7k9GB+h6QnLZ5u6NA9c18mZgA2E/fAq4i5BAJwyzT0wCLiYUZv5ASFDvBj43SK2kMlqnSmCSmR0F/CB6+/XAzwi/i9wajuRBCWH8KiH8YI4jtC//mPADgQEH+6hUNp9w8LyX0F6cHGLaKYQS7B5gNbCJ0IF7I/AhYHtUSs79TLb5qoNQsj6RcHC/nFBC/I67PzUg/mnAuYRO6lMIJe13AW8FPps7YdRO//XoIPY1d38wWu65hINMf/t6VOu4lNBPkHD3+6M+ge+4+2Nm9qr+Enf/GeEgkp3HeUD3UM1KUU3gIuA4d/989Bq8sk2H0kOoybQQaiJ/TUgMq919yxCfeSdwf87zKmDggXgPoUnlt4Tksjk6gL8riutIQoLLxl9O+L5qCUlwEmEfOjJ6fcowsWS39Qoz6wFa3f2uAdM9GM3Hgek5CXSCmc0HDnP33w/4zE53vyMnxm3u/q9DxHF4tK5HEZqijgUWRM1TbwKuzxYOZN9olNH4VQJsBP6T8ANcTmiG+EG2qSDHZYQ2YnP3ZwnNR7/LnSBq5sHdXyL80N5MaObpAv4zp+P2yUFiOQz4IaH2cDnhAP9yFNdnB0kGRNPcTig99kQH/fOBfx4k4Uw2s48Tagenm9nHzOzThHbzfzCz/2tmF5hZRVSabHT3W4Ft0SxmsXeHOjb88NlShhi5FPUZnAX8E9E2jErO2wdMN/CgmiKUmD3n+TmE7Xz9EMuaQGjm+0POy6cz4LsjNN98y93/hbCef4pe/wrh+zqG0ByUdSlhu+PuDxOatH5LSGh3AD+NksbAWI4hNOkAbHD3zw+SDHD3R4i2obv/1szeGSXivyD0mww6tDhnWRMJgwhyX+sf+eTuncDPo3jeHsV9F/D3wMNKBvtPCWH8MmBXVLI8ltBcdDjgUVv7EdDfKfc7d9/GK9/363hlVEt2KOGS7Izd/ceEUmwZoanmUTObTmhiODlqwiFn+pfcvc/dn3X3r7r7fwPPuXt3ziicgU4l1A5OJ7S5rwC+RtTWbWan58S/jNCx/TShKeIF4EV3v4WQiL5BKDXviuJpGrBuc919YDPLyUPEBcMkBHdPufs3PQxzzDqPMIIo1+kDnrcC/w/IlownAL9097vcPWNmswdZ3IeBb0M4DyN67fBBRvMAnGnh3I8ziGoq7p6J+kssW9uJmlt+42Fop1kYjDCD0OTYQegAfgz4iu09/PfdhGa3bkKT3rGDxJArW0PA3e93968SmuDud/dHB/uAmVVEfQODDTk9IZqmJCoMXEzYD+6NahuTCQWZIYdFy8iUEMYvIxz8ryUcLD9BOHD2Eg4iTwG4ezKnhFluYchhIudAPTdqUqqyvU+U2kIoWX+eUHJ/P6FTeQvwqpFJ/UGFk8WmRvN9i4WTmFZZGCqYnaacUKptBG4gNJt8391/SBjJdBbRASCK/96oA7IyWsddwOHR6JLXE5otns2uk5lNi5qTzMIY+9zOywVRafcvs7WiQVQwxKiXnPn/DaFmBDDFw7DV3FL1/Jzps01qp0TrlYmeT86Z/s05jzGzdxOafl6IXloSdQ4PFtccwve+CXjG3V+M5nGOhXMc+n/n7r7D3Z+OnpYCf0Vo359HKNHXEUrya4i2m5nNA3rd/Sl3b3H3Gwkdup+x0GE/mFLC/jnZwkmF84HjLZzc+CF79cmTC4B/BjZF2/Kk7PcT7Z+vj+Lf4+7roual7UCfhQENHyYMn140SO1M8qQ+hPHrCHd3M/tqtqPOzI4hjLx5P5Ays2WEKnR2TPdE4BKiUmfkaULfwrOEA1wqKp2fQxgZk7Jwhu/90QH3F2Z2R9Sef6W7/8HMFhDa4EsIB6aXgBcJ7d3J6PkRhFE5EA7qNVHJ+Mqc+HD3b1o44e40QpMY0bpNJByoWwjNIJcTmkc+OrAW4u7boyahkwnt3vfkvN1FaAqrI+z/uSX9rKMZ+mS37PzrgU9H2zjbobndzLYSDto/z/mIETp1HyeUsr9PaLv/jpndFG23eiDbkXwxYcRVW84y7zWzfyOnsz3HA4Sk1Jn7vrtvNbOP8Oo+h6yyaDl9wH1mdn7UyV0NrIlqlQDz3f2/cj/o7pvN7BfA/zazKwjf7aac7/JoQlJ4hNDR3UPYJ04k7A8vmNmPcjqMfwn80F8ZGfQA8P0ome4i9JENNCea9xLgXzycx3IH8G0z+y5wn2uk0T6xoWv0MpZFB+nnBx4Mc94vzz3QZl8jnHA1XOnXCKNa2qLnM4CUu798EGOf7O69I0wzcUCzDGZmwzRBDTaPYwgnXw13QtSgywYyw22naLpZQIm7d+zDvPNZ90HXM+ojOWjj6y1nZNbBFm376e4+sL/jYC7jKMIxbGD/0AxCc+pInfwygBKCiIgA6kMQEZGIEoKIiADjrFN5xowZfvzxx8cdhojIuFJXV7fN3V91SZiBxlVCOP7446mtHekClCIiksvM2kaeSk1GIiISUUIQERFACUFERCJjIiGY2alm9pmRpxQRkUIZEwmBcDmF0riDEBEpZrEnBDN7A+G67DJKampqqK6uprS0lOrqampqauIOSUTGgNgTAuECZE8M9WZ0pcxaM6vt7OykoyNcNqaxsZFUKkVvby9NTeFqx+3t7XR1hcuaNDQ0kE6nSSaTNDc3A9DW1kZ3dzcA9fX1ZDIZEokELS3hxkqtra309IR7fdfV1QHQ09NDa2srAC0tLSQSCTKZDPX14erR3d3dtLWFEV3Nzc0kk0nS6TQNDQ0AdHV10d4eblbV1NREb28vqVSKxsZwvbGOjo5RXaeamhpuuOEGbrzxRlKpFNdffz033HADd91117hdp0Pxe9I6aZ0O5jrlK9ZrGVm4Z+2fCFddvMrd/2G46RctWuQ6D+HAVFdXs379epYs6b/9AZs3b2b16tX9O6CIHFrMrM7dF400Xdwnps0kJINZhGulL3B33Qe1gJqamli8ePFery1evLi/tCEixSvWJiN33+jhfra/Av6kZFB4VVVVbNmy9+17t2zZQlVVVUwRichYEXsfQnRHq0uAs8xspNvyyQFas2YNK1euZPPmzaTTaTZv3szKlStZs2ZN3KGJSMzibjIiuqPRl6I/KbDly5cDsHr1apqamqiqqmLt2rX9r4tI8RpXN8hRp7KIyL7Lt1M59iYjEREZG5QQRGTM0EmT8VJCKEL60clYVFNTw5o1a1i/fj2pVIr169ezZs0a7Z+jyd3Hzd/ChQtdDszdd9/t8+fP94cffth3797tDz/8sM+fP9/vvvvuuEOTInfaaaf5ww8/vNdrDz/8sJ922mkxRXToAGo9j2OsOpWLjM5UlrGqtLSUVCpFWVlZ/2vpdJqKigoymUyMkY1/6lSWQelMZRmrqqqquPnmm/dqzrz55pt10uQoUkIoMvrRyVi1ZMkSbrnlFl544QUAXnjhBW655Za9arNSWEoIRWbJkiXceuutrFixgmQyyYoVK7j11lv1o5PYbdy4kSlTplBRUYG7U1FRwZQpU9i4cWPcoRUN9SEUmerqak466SQ2bdrErl27KC8vZ9myZTz55JPqQ5BYmRkPPvgg559/fv9rP/nJT1i6dCnj6Tg1FqkPQQb1+OOP89hjj7Fp0yZ2797Npk2beOyxx3j88cfjDk1EYqaEUGQmTpzI6tWrWbJkCWVlZSxZsoTVq1czceLEuEOTIjdv3jyuuOKKvS68eMUVVzBv3ry4QysaSghFZvfu3dx+++17/ehuv/12du/eHXdoUuTWrVtHb28vF1xwARMnTuSCCy6gt7eXdevWxR1a0VBCKDKnnnoqH/jAB1i9ejUVFRWsXr2aD3zgA5x66qlxhyZCeXk5c+fOpaSkhLlz51JeXh53SEVFCaHIrFmzhrvvvnuvywPcfffduh+CxG7t2rWsWrWKyspKACorK1m1ahVr166NObLiEfv9EGR0LV++nK1bt7Js2bL+UUZXX3217ocgsXv88cd5/vnnqaysxN3ZsWMH3/jGN9i2bVvcoRUN1RCKTE1NDffff/9eo4zuv/9+XUBMYldaWkomk2HDhg3s2rWLDRs2kMlkKC0tjTu0ohH7eQhmNg14D7ALKHX3O4eaVuchHDhdy0jGKjNj0qRJ9PX1kU6nKSsrY8KECezcuVPnIRyg8XQewluAhLt/G3hrzLEc8nQtIxnLUqkU06dPB2D69OmkUqmYIyousfchuPt9ZmbRU419LLDstYw2btzYf0/lSy65RNcykjHBzOjq6gKgq6uLkpIS1Q5G0VioIQAcZmbrgXsHvmFmq8ys1sxqOzs76ejoAKCxsZFUKkVvb29/6ba9vb1/Z2poaCCdTpNMJmlubgagra2N7u5uAOrr68lkMiQSCVpaWgBobW2lp6cHgLq6OgB6enpobW0FoKWlhUQiQSaTob6+HoDu7m7a2toAaG5uJplMkk6naWhoAMJO3d7eDoTSeW9vL6lUqr95pqOjY1TXKXsBsdwf3S233MK55547btfpUPyeinWd9uzZQ67s8/G8TmPhe8pX7H0IuaKk8Dl3f36w99WHcOCOOeYYenp6SKfT/e20ZWVlTJ8+nWeeeSbu8KSIZRsKZs2axfPPP89RRx1FZ2cngGoJB2jc9CGY2TQzmxI9bQTOjTOeQ117e3t/MgD6H2dLKCJxKikp4brrriOZTHLddddRUhL7IaqojIWtfQXwjujxLODpGGMpCtlkMNRzkbhMmTKFT33qU1RWVvKpT32KKVOmjPwhOWjGQkK4B5hpZu8Ftrt7XdwBFYNzzjmHjo4OzjnnnLhDEemXSCT6m47MjEQiEXNExWUsjDLqAtbHHUcxMTO2bt3KnDlz+p+rjVbilt0Ps/ti9v8rgxCl0MZCDUFGmbszbdo0zIxp06YpGciYMNR+qP1z9CghFDH90EQklxLCOGdm+/SXtX379r3+H8i8RA4m9W/FJ/Y+BDkw+1rKr6ioYNq0af3juyGM+96+fbsuEyBjwq9//WvmzJmji9rFQDWEInP11Vezbds2brvtNgBuu+02tm3bxtVXXx1zZHIo2p8aZyaT2ev/vs5Htdf9pxpCkVm/PgzouvHGG/v/X3PNNf2vixxM+1KDzR7Is5fBzv7f1/nI/lMNoQhl75YG9N81TSRuS5cuBXjVsNPs61J4SggiMiY88MADLF26dK+EsHTpUh544IGYIyseajISkTEje/A3s1dd+VQKTzUEEREBlBBERCSihCAiIoASgoiIRJQQREQEUEIQEZGIEoKIiABKCCIiEon9xDQzKwWuBLYD1e7+uZhDEhEpSmOhhrAUSLj7D4AdZlYdd0AiIsVoLCSEZ4C+nOe6KL+ISAxibzJy90agMXp6AvBUjOGIiBStsVBDAMDMLgO+6AMufG5mq8ys1sxqOzs76ejoAKCxsZFUKkVvby9NTU0AtLe309XVBUBDQwPpdJpkMklzczMAbW1tdHd3A1BfX08mkyGRSNDS0gJAa2srPT09ANTV1QHQ09NDa2srAC0tLSQSCTKZDPX19QB0d3fT1tYGQHNzM8lkknQ6TUNDAwBdXV20t7cD0NTURG9vL6lUisbGkAM7Ojq0TlonrZPWqaDrlC8bCzeeMLMzgQnuvnW46RYtWuS1tbWjFNWhz8x04xEZk7RvHlxmVufui0aaLvYagplVAgvcfauZTTKzxXHHJCJSjGJPCMAK4FIzuwf4OdATczwiIkVpLHQqrwd0D0cRkZiNhRqCiIiMAUoIIiICKCGIiEhECUFERAAlBBERiSghiIgIoIQgIiIRJQQREQGUEEREJKKEICIigBKCiIhElBBERARQQhARkYgSgoiIAEoIIiISUUIQERFACUFERCJKCCIiAoyRhGBml8Udg4hIsYs9IZjZhcBVccchIlLsYk8I7v4joCvuOEREil3sCWEkZrbKzGrNrLazs5OOjg4AGhsbSaVS9Pb20tTUBEB7eztdXSG3NDQ0kE6nSSaTNDc3A9DW1kZ3dzcA9fX1ZDIZEokELS0tALS2ttLT0wNAXV0dAD09PbS2tgLQ0tJCIpEgk8lQX18PQHd3N21tbQA0NzeTTCZJp9M0NDQA0NXVRXt7OwBNTU309vaSSqVobGwEoKOjQ+ukddI6aZ0Kuk75MnfPe+JCMbM73f2qkaZbtGiR19bWjkJExcHMGAvfv8hA2jcPLjOrc/dFI0035msIIiIyOpQQREQEGAMJwcwuBpaY2dK4YxERKWYT4g7A3e8D7os7DhGRYnfANQQzqzwYgYiISLzySghmtniI1+cDI/Zci4jI2Jdvk9HJZnY0cDjQG73mQDmQLERgIjI2zJ43h85nnxv15ZrZqC9z1tzZPNfeMerLHStGTAhmdiowCfglcDLwPDAV+AywGHhfIQMsFvPmzObZ5zpHfbmj/aObO3sW7R2jf3CR/df57HPMv+WMuMMYFa031McdQqyGTQhR/8Ac4BjgdGB39LwEMOBoxsBIpUPBs891csMbjo47jIK75dHRT3oikp9hE4K77wAeihLD08DbCUlhD/AAsAyYXuggRUSk8PJpMvo0UAs86e6/H+R9XbpaROQQMGJCcPd1ZnYB8AUzeyR62aK/EqC0gPGJiMgoyWuUkbs/YGZNwNnu/t0CxyQiIjHI+0xld/+zmT1vZlPc/aVCBiUiIqNvn0YIuXtqYDIws7MPbkgiIhKHvBOCmb17kNcqga8d1IhERCQW+1JDmGpmnzSztwCY2RuAm4D1BYlMRERG1Ugnpk0BrgZeACqBDcCbzOw7wKPu/unChygiIqNh2BpC1F/wbeAe4CXgPcAp7v5B4D4zW25mZYUPU0RECi2fJqPFhDOSDTge+LmZfRbYDmSAZWZWXrAIRURkVAybEKLLW88GJgN/BSQIJ6K1AWuAlLv/kHApCxERGcdGajJqBb5F6D94COiO3jqH0K+QMbNqd08fSBBm9g9m9nEz++CBzEdERPZfPk1GlcA3gUZgE6G28Gt3/0d3v59wJdT9Fo1W2unuXwbeamYTD2R+IiKyf0ZMCO7e48FGd98G/BG4M2eSH5tZxQHEsAzIXiOpBTjzAOYlIiL7Ke9LV2S5exeAmZUQ7ocwwd2fOYAY5vBKU1QPoc+in5mtAlYBzJ07l46ODubMmUNjYyMLFixgz549tLW1UVVVRXt7O2VlZRx99NE0NDRQVVVFKpWio6ODU045hba2NiZPnszMmTOpr6/n9NNPJ5lMsm3bNhYsWEBraytTp05l+vTp1NXVsXDhQnp6enjxxReZP38+LS0tzJgxg8MPP5yGhgbOOOMMuru76e3t5bjjjqO5uZk5c+ZQUVFBU1MTp59+Ol1dXaTTaebNm0dTUxPHHXccJSUltLS0UF1dTUdHuDuT3zQF2HkAm3F8+McLp4zr7+lQ3PdGWie/aQqknopztxk9N02hu7t7XH5Pw+17+TJ336/tZmYLgHnAx9z9VWcx78N8vgp8xd2bzewjwAvu/v3Bpl20aJHX1tbu76LGNDMrkhvkdLG/+5zEw8yK6o5ph+L+aWZ17r5opOnyqiGY2VmEEUZ7CENN9wBpYAcHPsKoA5gBNBNuttN4gPMTEZH9kO+lK84HKoDDgGnATEJTTylw1QHG8GPCqCWABcBvDnB+IiKyH/K5Y9rhwOHAKYTaAYTzEGoPdLgpgLvXmdk7zewTwM8OxjxFRGTf5XPHtCTwaTNbGB28zyBcxuJ8M5sEbHL33gMJwt0/eyCfFxGRAzdik5GZVUdJYKmZvR7IdiA/DvwKOK+A8YmIyCjJp1N5CuG6Rc8Qhn+WEk5GyxBOUusrWHQiIjJq8mky2gpgZkngMeAJ4BKgzt2LZHCyiMihL+8b5Lh7u7s3uvtud/8PIAUQ9SOIiMg4l1dCMLOzzGx67mvu/mz08M0HPSoRERl1+Qw7PQw4FjjPzFKEPoSXgDcCmwnnIzxYyCBFRKTwRrqF5lTCXdJeRziDuBaYC3QCPyDcNOddBY5RRERGwbAJwd1fBDaY2WWEy0q8H/gdYeTRGYST1f6p0EGKiEjh5dupvINwg5zs3dImEoahnpy9+qmIiIxv+ZyYdjnQ6e5PAr8FyoDvAj8n3DxHREQOAfnUEHqAWWZ2DvAsMAm4yt13cuAXthMRkTEinzOVHTgemEroRJ4KvBjd/7jEzEqBf3f3zNCzEJHxatbc2bTeUB93GKNi1tzZI090CMvnTOUfj0YgxW7u7Fnc8mhn3GEU3NzZs+IOQfbRc+0do75MMzskb1Qz1u3zLTSlMNo7nhv1ZepHJyK58r50hYiIHNqUEEREBFBCEBGRiBKCiIgABexUNrN7gSOHeLvB3T8WTXeZu3+3UHGIiEh+CjnK6Gvu/tBgb5jZJdH/CwkntykhiIjELNYmI3f/ETDstZDMbJWZ1ZpZbWdnJx0dYUx0Y2MjqVSK3t5empqaAGhvb6erK8yuoaGBdDpNMpmkubkZgLa2Nrq7uwGor68nk8mQSCRoaWkBoLW1lZ6eHgDq6uoA6OnpobW1FYCWlhYSiQSZTIb6+nCiTnd3N21tbQA0NzeTTCZJp9M0NDQA0NXVRXt7OwBNTU309vaSSqUsYg3hAAANjElEQVRobGwEoKOjQ+ukddI6aZ0Kuk75skKNQzez84arIbj7xujxne5+VT7zXLRokdfW1h7EKIubzkOQsUr75sFlZnXuvmik6dSpLCIigBKCiIhElBBERASIOSGY2cXAEjNbGmccIiJS2GGnHzGzvx/ivceAje5+H3BfAWMQEZE8FSwhuPt7CzVvERE5+NSHICIigBKCiIhElBBERARQQhARkYgSgoiIAEoIIiISUUIQERFACUFERCJKCCIiAighiIhIRAlBREQAJQQREYkoIYiICKCEICIiESUEEREBlBBERCRSsBvkmNm9wJFDvN0AfBK4EtgOVLv75woVi4iIjKyQt9D8mrs/NNgbZnYJsBRIuPsPzGy+mVW7e2MB4xERkWHE2WT0DNCX8zwVVyAiIhJjQnD3Rnf/YfT0BOCpwaYzs1VmVmtmtZ2dnXR0dADQ2NhIKpWit7eXpqYmANrb2+nq6gKgoaGBdDpNMpmkubkZgLa2Nrq7uwGor68nk8mQSCRoaWkBoLW1lZ6eHgDq6uoA6OnpobW1FYCWlhYSiQSZTIb6+noAuru7aWtrA6C5uZlkMkk6naahoQGArq4u2tvbAWhqaqK3t5dUKkVjY6gMdXR0aJ20TlonrVNB1ylf5u55T7wvzOy84ZqM3H1j9Pgy4Lfu/vRI81y0aJHX1tYe5EiLl5lRqO9f5EBo3zy4zKzO3ReNNF2so4zM7EzgmXySgYiIFFZsCcHMKoEF7r7VzCaZ2eK4YhERkXhrCCuAS83sHuDnQE+MsYiIFL1CDjv9iJn9/RDvPebunwDWF3D5IiKyDwqWENz9vYWat4iIHHy6dIWIiABKCCIiElFCEBERQAlBREQiSggiIgIoIYjIGFJTU0N1dTUA1dXV1NTUxBxRcSnkeQgiInmrqalh5cqV7Ny5E4A//OEPrFy5EoDly5fHGVrRKNjF7QpBF7c7uHQBMSk0M4tludqv95bvxe1UQxCRgtmXA/NwyUMH+NGhPgQRGVMOO+ywvf7L6FFCKEKrV6+moqICgIqKClavXh1zRCKvqKys3Ou/jB71IYxzcbXRgqrxcnCpyahw1IdQJPb1h1JWVkZpaSl79uwhnU5TVlZGSUkJmUyGdDpdoChFZDxQQigyfX19ZDIZSkpCa+GePXvo6+tTCUxE1IdQjNyddevWsWPHDtatW6dkICKAEkLRWrduHZWVlaxbty7uUET2Mm3aNEpKSpg2bVrcoRQdJYQi1dXVtdd/kbFi4sSJ7Nmzh4kTJ8YdStEpWB+Cmd0LHDnE2w3ATcB7gF1AqbvfWahY5NVKSkrYs2dP/3+RsUKFlfgUslP5a+7+0GBvmNklwFuAhLt/38zuBO4sYCwiMsYNVTjJDoCQwottS7v7fcC90dPdQ01nZqvMrNbMajs7O+no6ACgsbGRVCpFb28vTU1NALS3t/eXKhoaGkin0ySTSZqbmwFoa2uju7sbgPr6ejKZDIlEgpaWFgBaW1vp6ekBoK6uDoCenh5aW1sBaGlpIZFIkMlkqK+vB6C7u5u2tjYAmpubSSaTpNNpGhoagFDKaW9vB6CpqYne3l5SqRSNjY0AdHR0jPo6nXDCCf0dye7OiSee2P/58bpOh+L3VGzrNGnSJACmTp1KSUkJU6dOBWDSpEnjdp3GyveUN3cvyB9w3jDvXRL9PxxYD1yQzzwXLlzocmAALy0t9dtuu8137Njht912m5eWlnrYFUTiA/hFF13k5eXlDnh5eblfdNFF2jcPAqDW8zjGxloXc/eku68G3mVmR8UZS7GYMGECEyZM4Prrr6eyspLrr7++/zWRuF177bWkUincnVQqxbXXXht3SEUltoRgZtPMbEr0tBE4N65YiklfXx/pdJrp06djZkyfPp10Ok1fX1/coUmRmzdvHldeeSWbN28mnU6zefNmrrzySubNmxd3aEUjzhrCFcA7osezgKdjjKVolJeXs3z5cmbMmIGZMWPGDJYvX055eXncoUmRW7duHX19faxYsYKKigpWrFhBX1+fzpUZRXEmhHuAmWb2XmC7u9fFGEvR2L17N4888gjr168nlUqxfv16HnnkEXbvHrJfX2RULF++nC9/+ct7Xe30y1/+su6WNooKdrVTM/seMHOItx9z90/s6zx1tdMDV11dzaRJk6irq8PdMTMWLlzIzp07+0c1iMihJd+rnRashuDu73X3tw7xt8/JQA6OuXPnUltbyzXXXEMikeCaa66htraWuXPnxh2aiMRM90MoMhUVFSxatIja2lp27dpFeXl5//NUKhV3eCJSALHXEGRs2rVrF83NzcyePZuSkhJmz55Nc3Mzu3btijs0EYmZEkIR2rFjB/DKzXWyz0WkuCkhFKGdO3eybNkytm/fzrJly9i5c2fcIYnIGKCEUITOPvtsNmzYwBFHHMGGDRs4++yz4w5JRMYAJYQi9PTTT7Np0yZ2797Npk2bePppnRMoY0NNTQ3V1dWUlpZSXV1NTU1N3CEVFV3ApsjMmzePl19+mRUrVtDW1sZxxx3Hrl27dHkAiV1NTQ1r1qzhjjvuYPHixWzZsoWVK1cC6OS0UaIaQpFZt24dZWVlAJgZAGVlZbo8gMRu7dq13HHHHSxZsoSysjKWLFnCHXfcwdq1a+MOrWgoIRQZXR5AxqqmpiYWL16812uLFy/uv+6/FJ6ajIrQ8uXLlQBkzKmqqmLLli0sWbKk/7UtW7ZQVVUVY1TFRTUEERkT1qxZw8qVK/e6/PXKlStZs2ZN3KEVDdUQRGRMyNZaV69eTVNTE1VVVaxdu1a12VGkaxmJiBzidC0jERHZJ0oIIiICKCGIiEhECUFERAAlBBERiYyrUUZm1g20xR3HIWQGsC3uIEQGoX3z4DrO3Ye6x32/cZUQ5OAys9p8hqKJjDbtm/FQk5GIiABKCCIiElFCKG7fiDsAkSFo34yB+hBERARQDUFERCJKCGOEmR1xgJ8/waJboJnZ1BGmnWZmk/Ocb/mBxCXjn/bN4qHLX8fAzJYBBhzp7t+OXn6PmX3P3V/Kme5NQNLdG8xsSu57OdPMAF4G3gF0mtkvgA8BXxgmhBTwYWB9HuF+1MxqgSfcvXPAsi8FJkZ/5UAGOMrdbx1ppmZ2mbt/N4/lyygq5n3TzEqBK4HtQLW7fy6PGA4pqiHEYwEhGTeb2YVm9n7gdcAyMzsnZ7rtvJK0P2NmNw14H6CHsBMnAAdeAl4YasFm9m533xnNOx8vAluB1wzy3hHAA4Qf2w53/1egfaQZmtmFwFV5Ll9GVzHvm0uBhLv/ANhhZtV5xnHIUA0hHtuBHnf/jZmdDJwH/AE4BfgpgJkdAywEjo1KLo8CzYQSVK6LgaOiedwJvA843MxWAC+5+/ezE5rZawg/SnJeO9zdkwNeuxAoBSqBNwC7gCnRNdVzp50KXBpNV2pmH4viHJa7/8jM3jPSdBKLYt43nwFOyHk+cH0OeUoI8TCgJCp9/QWwB6gBznP37On6RwDnAN9090fN7HhCjW7PgHltAaYAPwJOBP4EfBtY4e4bBkz7VmC3mV0FLDazw4GXzewud8+d70zgHnfvNbPd7v49M5s78McJ3E0o8d0E/BdwBZAys253b97XjSJjQtHum+7eCDRGT08AnhpiGx2ylBDiMRU4DHge2AgcB8wllHyynoievyfqj4Pwo8tkn5jZLEJ1uQn4I9BH+GGdA9TlLtDMJgHPuPv90fM+d//OEPFNB94Xzf8xM5sOrAD621TNbBpwIbAE+H60Pj8G7vdoLLOZXQAckzPfP7r7luE3jcSs6PdNM7sM+GJ22mKihBCPF4H5vFKNTgNd7L2DXgLcQ6jGOvBnXl0K206oyr+R0JZ6vLv/vZndBXxwwDJPAh4wsysIP843mdlEoNvdfzRgWieU5D4E/IrQCfiJvSZw325mu4CvR+uTJrQ1/42Zfd3dM+7+wL5sFBkTinrfNLMzCcnp6SG30CFMncrxMHf/KmHn7iS0cz4DnAVgZvMI7Z0Zwg/kFOAxoh+dmZ1kZhPcfRfhjM6ngNOAL5nZAqCe0L7az90b3L3P3f/d3e8GHnH3DYP84AB2ABXR478Emt395ahUhpkdYWbvAI4nlCDPAy4AWglV7Q+b2VEHvJUkDkW7b5pZJbDA3bea2SQzW7xvm278Uw0hHmZmxxJKYb2EKrgBmwHcvT2a6ERC6Wayu+8yMye0oVZGn3vW3d3Mfkf4Lt8GTHD3L5jZP5lZs7u/PHDB0efnmdnZwJFAyt0fit4/mzA64xOEqv4W4Ndm9pEozk53TwD/bWYzo2mmArsJ7cVPuPu/jLDyFwNLzGypuz+4n9tQCqOY980VwFvM7CJC8rhqv7bgOKaEEI8J7v5nQgkHM5tNaPOcaWZvB37h7jsI7bSLgE3R5xoJP9RS4ONmVgK8HfhzNB78EkK7L4RRH1vN7K/d/REz+yhwA+HH+hKhKv1GIAm8YGb/Q9gfKty91czWAX05ba4PAX9LdGCIvASUAd8jtA0/CTw80sq7+33AffuywWTUFO2+6e7rye/8h0OWrmUUAzMrc/f0QZjPZEIJak/U5loajeMW2S/aN4ubEoKIiADqVBYRkYgSgoiIAEoIIiISUUIQERFACUFERCL/H4Hm2S8sUtWGAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "test_1 = np.random.randn(5000)\n",
    "test_2 = np.random.randn(5000)\n",
    "test_list = [test_1, test_2]\n",
    "labels = [\"随机数生成器-1\",\"随机数生成器-2\"]\n",
    "colors = ['#793217', \"#218731\"]\n",
    "\n",
    "whis = 1.5\n",
    "width = 0.35\n",
    "\n",
    "bplot = plt.boxplot(test_list,\n",
    "                    whis=whis, # 四分位间距的倍数\n",
    "                    widths=width,  # 箱体的宽度\n",
    "                    labels=labels, \n",
    "                    patch_artist=True,  # 是否给箱体添加颜色\n",
    "                    sym='o') # 离群点的标记样式\n",
    "\n",
    "for patch, color in zip(bplot['boxes'], colors):\n",
    "\tpatch.set_facecolor(color)\n",
    "\n",
    "plt.ylabel(\"随机数值\")\n",
    "plt.title(\"随机数生成器抗干扰能力的稳定性比较\")\n",
    "\n",
    "plt.grid(axis='y', ls=':',lw=1, color='gray',alpha=0.4)\n",
    "plt.show()\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'whiskers': [<matplotlib.lines.Line2D at 0x2c210eadef0>,\n",
       "  <matplotlib.lines.Line2D at 0x2c210eb7080>,\n",
       "  <matplotlib.lines.Line2D at 0x2c210ebfd68>,\n",
       "  <matplotlib.lines.Line2D at 0x2c210ebfeb8>],\n",
       " 'caps': [<matplotlib.lines.Line2D at 0x2c210eb75f8>,\n",
       "  <matplotlib.lines.Line2D at 0x2c210eb7a58>,\n",
       "  <matplotlib.lines.Line2D at 0x2c210ec8390>,\n",
       "  <matplotlib.lines.Line2D at 0x2c210ec8780>],\n",
       " 'boxes': [<matplotlib.patches.PathPatch at 0x2c210eadc88>,\n",
       "  <matplotlib.patches.PathPatch at 0x2c210ebfa90>],\n",
       " 'medians': [<matplotlib.lines.Line2D at 0x2c210eb7eb8>,\n",
       "  <matplotlib.lines.Line2D at 0x2c210ec8be0>],\n",
       " 'fliers': [<matplotlib.lines.Line2D at 0x2c210ebf358>,\n",
       "  <matplotlib.lines.Line2D at 0x2c210ed0080>],\n",
       " 'means': []}"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bplot"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 计算四分位数\n",
    "\n",
    "np.percentile()\n",
    "\n",
    "Compute the q-th percentile of the data along the specified axis.\n",
    "\n",
    "Returns the q-th percentile(s) of the array elements.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[10, 7, 18, 5, 14, 12, 13, 4, 0, 15]\n"
     ]
    }
   ],
   "source": [
    "import random\n",
    "data = random.sample(range(20),10)\n",
    "print(data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 0.  ,  5.5 , 11.  , 13.75])"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pc = np.array(data) # 转化成numpy array形式\n",
    "\n",
    "np.percentile(pc, np.arange(0, 100, 25))# 从0,25， 50, 75 取四个点\n",
    "\n",
    "# 其中第一四分位数为5.5， 中位数11， 三四为13.75"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 误差棒图\n",
    "\n",
    "应用场景：通过抽检获得样本，对总体参数估计会由于样本的随机性导致估计值出现波动，\n",
    "因此需要用误差置信区间来表示对总体参数估计的可靠范围。\n",
    "\n",
    "误差棒图就可以很好地描述总体参数估计的置信区间。\n",
    "\n",
    "误差棒的计算方法可有很多种：单一数值、置信区间、标准差、标准误差等。\n",
    "\n",
    "可视化展示方式也有很多种：水平误差棒、垂直误差棒、对称误差棒、非对称误差棒等。\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = np.linspace(0.1, 0.6, 10)\n",
    "y = np.exp(x)\n",
    "\n",
    "error = 0.05 + 0.15*x\n",
    "\n",
    "lower_error = error\n",
    "upper_error = error * 0.3\n",
    "\n",
    "error_limit = [lower_error, upper_error]\n",
    "\n",
    "plt.errorbar(x,y, # xy数据点的位置\n",
    "\tyerr=error_limit, # 单一数值的非对称形式误差范围\n",
    "\tfmt='o', # 数据点的标记样式和连接线样式\n",
    "\tecolor='y',  # 误差棒的线条颜色\n",
    "\telinewidth=4, # 误差棒的线宽\n",
    "\tms=5, # 数据点的大小\n",
    "\tmfc='c', # 数据点的颜色\n",
    "\tmec='r', # 数据点的边缘颜色\n",
    "\tcapsize=2,capthick=1 # 误差棒边界横杠大小\n",
    "\t)\n",
    "plt.xlim(0,0.7)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 案例一 带误差棒的柱状图\n",
    "# 使统计图形同时可以反映数据测量误差\n",
    "```bash\n",
    "xerr : scalar or array-like, optional\n",
    "\tif not None, will be used to generate errorbar(s) on the bar chart default: None\n",
    "yerr : scalar or array-like, optional\n",
    "\tif not None, will be used to generate errorbar(s) on the bar chart default: None\n",
    "    \n",
    "```\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "x = np.arange(5)\n",
    "y = [100, 82, 39, 92,43]\n",
    "std_err = [7, 2, 6, 10, 5]\n",
    "\n",
    "err_attribute = dict(elinewidth=2, ecolor='black', capsize=3)\n",
    "plt.bar(x, y, color='c',\n",
    "\twidth=0.6,\n",
    "\talign='center',\n",
    "\tyerr=std_err,  # 关键——指定误差值\n",
    "\terror_kw=err_attribute, # 误差bar的绘制属性\n",
    "\ttick_label=list('ABCDE'))\n",
    "\n",
    "'''\n",
    "xerr : scalar or array-like, optional\n",
    "\tif not None, will be used to generate errorbar(s) on the bar chart default: None\n",
    "yerr : scalar or array-like, optional\n",
    "\tif not None, will be used to generate errorbar(s) on the bar chart default: None\n",
    "'''\n",
    "\n",
    "plt.title(\"不同芒果园种植区的单词收割量\")\n",
    "plt.xlabel('芒果种植园区')\n",
    "plt.ylabel('收割量')\n",
    "\n",
    "plt.grid(axis='y', linestyle=':', color='gray', alpha=0.4)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 案例3 带误差棒的多数据并列柱状图\n",
    "# 可以对比两组数据\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "## 案例3 带误差棒的多数据并列柱状图\n",
    "# 可以对比两组数据\n",
    "\n",
    "\n",
    "\n",
    "x = np.arange(5)\n",
    "y = [100, 82, 39, 92,43]\n",
    "y_2 = [83,92,100,53, 25]\n",
    "std_err = [7, 2, 6, 10, 5]\n",
    "std_err_2 = [6,5 ,10, 2,7 ]\n",
    "\n",
    "bar_width = 0.35\n",
    "err_attribute = dict(elinewidth=2, ecolor='black', capsize=3)\n",
    "\n",
    "# 第一组\n",
    "plt.bar(x, y, color='c',\n",
    "\twidth=bar_width,\n",
    "\talign='center',\n",
    "\tyerr=std_err,\n",
    "\terror_kw=err_attribute,\n",
    "\t# tick_label=list('ABCDE'),  # 后面统一制定x轴标签\n",
    "\tlabel='第一组')\n",
    "# 第二组\n",
    "plt.bar(x+bar_width,   # 并列摆放\n",
    "\ty_2, color='m',\n",
    "\twidth=bar_width,\n",
    "\talign='center',\n",
    "\tyerr=std_err_2,\n",
    "\terror_kw=err_attribute,\n",
    "\t# tick_label=list('ABCDE'),\n",
    "\tlabel='第二组')\n",
    "plt.xticks((x + bar_width/2), list('ABCDE'))\n",
    "\n",
    "plt.title(\"不同芒果园种植区的单词收割量\")\n",
    "plt.xlabel('芒果种植园区')\n",
    "plt.ylabel('收割量')\n",
    "\n",
    "plt.grid(axis='y', linestyle=':', color='gray', alpha=0.4)\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
